New Persistent assistants now work in governed, cross-host teams. See what changed

Changes, commit, and stash

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

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). 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.