Documentation
Changelog
D-1103Git

Changes, commit, and stash

Stage by file or hunk, commit, push, and stash work in progress.

Topic
Git
Available on
Available onDesktopWeb PortalMobile
Reviewed
September 28, 2026
On this page

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 in the message field). The button is disabled until you have at least one staged file and a non-empty message.

From anywhere in the workspace:

  • Cmd+Option+U (Ctrl+Alt+U on Windows and Linux) opens the right panel on Changes, showing your uncommitted files.
  • Cmd/Ctrl+Shift+Y runs Commit and push: the same action as the commit bar’s primary button (Commit & Sync, Commit & Publish, or Push when nothing is staged). If you haven’t typed a message yet, it puts the cursor in the message field instead of committing.

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.