Shortcuts and reference
Every shortcut and menu in BranchPilot 1.0.0, and the Git command each action runs.
Keyboard shortcuts
| Shortcut | Action |
|---|---|
| Space | Stage or unstage the file whose diff is open. |
| Ctrl + Enter | Commit or amend. Works while the cursor is in the subject or description. |
| F5 | Fetch all remotes. |
Space is ignored while a text field has focus.
Header buttons
| Button | Action |
|---|---|
| Fetch all remotes (F5) | Downloads from every remote. |
| Pull | Fetches and integrates into the current branch. Shows the behind count when there is one. |
| Push | Uploads the current branch. Shows the ahead count when there is one. |
| More push options | Holds Force push (with lease)…. |
| Refresh everything | Reloads status, branches, tags, stashes, worktrees and the graph. |
Context menus
A commit in the graph (right-click)
| Item | Notes |
|---|---|
| Interactive rebase onto this commit… | Unavailable on the current commit or with a detached HEAD. |
| Copy hash | Copies the full hash. |
| Cherry-pick this commit | Asks for a parent on merge commits. |
| Revert this commit | Asks for a parent on merge commits. |
| Create tag here… | Annotated when you give a message, lightweight otherwise. |
| Reset branch to here… | Soft, Mixed or Hard. |
A branch in the sidebar (right-click)
Checkout, Merge into current…, Rename…, Delete…. Double-click also checks out.
Other sidebar menus
| Section | Items |
|---|---|
| Remotes | Checkout as local branch on each remote branch. |
| Tags | Push to remote, Delete… |
| Stashes | Show diff, Apply, Pop, Drop… |
| Worktrees | Remove… |
Actions that ask first
| Action | Safeguard |
|---|---|
| Force push | Type the branch name. |
| Hard reset | Type the branch name. |
| Delete a branch | Confirmation; a second one (Force delete) for unmerged branches. |
| Delete a tag | Confirmation. |
| Drop a stash | Confirmation. |
| Remove a worktree | Confirmation; a second one (Force remove) when it has changes. |
| Abort a merge, rebase, cherry-pick or revert | Confirmation. |
| Skip a commit during a rebase | Confirmation. |
The Git command behind each action
BranchPilot runs git for every action. Knowing the command helps when you read Git's own documentation or an error message.
| Action | Command |
|---|---|
| Stage a file | git add -- <path> |
| Stage all | git add -A |
| Unstage a file | git reset -q -- <path> |
| Unstage all | git reset -q |
| Stage or unstage a hunk | git apply --cached with that hunk as a patch (-R to unstage) |
| Commit / amend | git commit / git commit --amend |
| Fetch | git fetch --all --prune |
| Pull | git pull --no-edit |
| Push | git push |
| Push a branch with no upstream | git push -u <remote> <branch> |
| Force push | git push --force-with-lease |
| Create a branch | git checkout -b <name>, or git branch <name> without Check out |
| Check out a remote branch | git checkout -b <local> --track <remote branch> |
| Delete a branch | git branch -d <name> (-D for Force delete) |
| Merge | git merge --no-edit <name> |
| Take ours / Take theirs | git checkout --ours / --theirs, then git add |
| Mark resolved | git add -- <path> |
| Stash | git stash push, with -u for Include untracked |
| Interactive rebase | git rebase -i --empty=drop --no-autosquash <base> |
| Cherry-pick / revert | git cherry-pick <hash> / git revert --no-edit <hash> |
| Reset | git reset --soft, --mixed or --hard |
| Tag | git tag <name> or git tag -a <name> -m <message> |
| File history | git log --follow for the file |
Limits and behaviour
| Item | Value |
|---|---|
Git version required (.deb, PPA) | 2.28 or newer |
| Commits loaded per page in the graph | 500, with more loaded as you scroll |
| Recent repositories remembered | 15 |
| Subject length guide | 72 characters (amber above 50, red above 72) |
BranchPilot has no settings screen. It follows your Git configuration.