Repository navigation
Committing Changes
The commit composer sits below the file list in Working Copy.
- A subject line (with a 72-character counter) and an optional body.
- If your team uses Conventional Commits, a type/scope picker appears — it's hidden if that setting is off. History will still detect and show commit types either way.
- Add co-authors from a picker of recently used authors; this adds proper
Co-authored-by:trailers. - Amend prefills the previous commit's message so you can edit and replace it.
- After Squash into current (see Branches), the message starts out listing the squashed commits, ready to edit.
- Allow empty lets you commit with nothing staged (useful for marker commits).
- Sign signs the commit with GPG; its default comes from your Git configuration.
Press ⌘/Ctrl+Enter to commit from the message field.
The Commit button is a split button — the dropdown next to it offers Commit and push as a single step, plus Undo last commit.
If the commit you're undoing has already been pushed, the confirmation is explicit that this rewrites published history.
If your name or email aren't configured, an inline prompt appears so you can set them before committing — either for this repository only, or globally. See Settings & Preferences.
The Commit button is disabled (not silently ignored) when the message is empty or nothing is staged — except when amending, which doesn't require new staged changes.
Opening a commit (from History or elsewhere) shows its signature status, parent commit(s), co-authors, and its changed files with an inline diff, along with Branch here, Cherry-pick, and Revert actions.
Getting started
Everyday work
- Working Copy & Staging
- The Diff Viewer
- Committing Changes
- Branches
- Remotes & Syncing
- Signing In to Remotes
- Worktrees & Submodules
- Search in Files
History
When things go wrong
Insights
Configuration