Skip to content

Changes, commit, and stash

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

Available on
  • 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.