Changes, commit, and stash
Stage by file or hunk, commit, push, and stash work in progress.
- Desktop
- Web Portal
- Mobile
The Changes tab is where you do day-to-day git work — review diffs, stage, commit, and push.
Layout
Two sections fill the view:
- Staged files — what’s queued for the next commit.
- Changes — everything else: modified, untracked, deleted.
Each section has a header with a count and a bulk action — Stage All / Unstage All. Collapse a section by clicking its header.
A commit bar sits along the bottom: a multiline message field on the left and the action buttons on the right.
Inline and full diffs
Click any file row to expand its diff inline — the first hunk shows in the row. Click Open full diff to open the side-by-side DiffOverlay: original on the left, hunk strip in the middle, new content on the right. The full diff is the right view for big changes.
Stage and unstage
- Whole file — click Stage on the file row (or Unstage in the staged section).
- Per hunk — the inline and full diffs both expose Stage hunk / Unstage hunk so you can split a working tree into smaller commits.
- Discard — the destructive option for unstaged changes. Always prompts to confirm; the file is lost when you say yes.
Untracked files appear with an Add action that stages them.
Commit
Type a message in the commit bar and click Commit (or press Cmd/Ctrl+Enter). The button is disabled until you have at least one staged file and a non-empty message.
Multi-line messages work the way you’d expect — the first line is the subject, blank line, body. Glueprint passes the message straight to git commit and respects your commit.template and hooks.
Push, pull, sync, publish
The commit-bar buttons change based on sync state:
- Push — when you’re ahead of upstream.
- Pull — when you’re behind.
- Sync — when you’re both ahead and behind. Pulls then pushes.
- Publish — when the branch has no upstream. Asks which remote (if you have several) and runs
git push -u.
Pull defaults to merge; Pull with rebase is in Actions > Pull with rebase for the rebase-pull style.
The behind / ahead counts also show up in the commit-bar status, so you can see at a glance whether a Pull would actually do anything.
Stash
When you need to set the working tree aside without committing, open Actions > Stash. The stash menu shows existing stashes (with relative-time labels) and a control to create a new one:
- Message — optional label for the stash.
- Include untracked — adds new files to the stash.
Per-stash actions:
- Apply — restore the stash, leave it in the list.
- Pop — restore the stash and remove it.
- Drop — delete without restoring.
Stash is gated on having something to stash — if there are no tracked changes and no untracked files (when the toggle is on), the create button is disabled.