Keyboard shortcuts

|  | Commit
Ctrl + Return | : | Commit staged changes
Ctrl + Shift + Return | : | Prepare commit message hook
Ctrl + S | : | Stage / unstage selected files
Ctrl + Shift + S | : | Stage / unstage all files
Alt + A | : | Stage modified files
Alt + U | : | Stage untracked files
Ctrl + U / Alt + Shift + R | : | Revert the selected lines, or the diff hunk beneath the text cursor when nothing is selected, from the worktree
Ctrl + Shift + U | : | Launch an external editor to edit the selected lines, or the diff hunk beneath the text cursor when nothing is selected, and then revert unstaged changes using the edited diff
Ctrl + Z | : | Revert uncommitted changes
Ctrl + Shift + M | : | Merge branches
Alt + M | : | Amend last commit
Ctrl + Shift + C | : | Cherry pick

|  | Actions
Ctrl + B | : | Create branch
Alt + B | : | Checkout branch
Ctrl + T | : | Find files
Alt + G | : | Grep
Alt + D | : | Show diffstat
Alt + E | : | Export patches
Alt + Shift + S | : | Stash
Ctrl + Enter | : | Apply Stash
Ctrl + Backspace | : | Pop Stash
Ctrl + Shift + Backspace | : | Drop Stash
Ctrl + Backspace | : | Delete untracked files
Alt + Shift + F | : | Toggle paths filter
Alt + R | : | Start/continue interactive rebase
Ctrl + R | : | Refresh
? | : | Keyboard shortcuts

|  | Editing
Enter / Ctrl + E | : | Launch editor
Space | : | Open using default application
Shift + Space | : | Open parent directory
Ctrl + Alt + C | : | Copy Commit ID
Ctrl + Shift + E | : | View / edit recently modified files
Ctrl + # | : | Focus tools
Ctrl + Shift + # | : | Show and hide tools # is 1 for commit, 2 for status, 3 for diff, etc.
Ctrl + Space | : | Display autocomplete options
Ctrl + Shift + # | : | Show and hide tools # is 1 for commit, 2 for status, 3 for diff, etc.

|  | Remotes
Ctrl + P | : | Launch the Push dialog
Ctrl + Shift + P | : | Launch the Pull dialog

|  | Diff
S | : | Stage or unstage the selected lines, or the diff hunk beneath the text cursor when nothing is selected
Ctrl + Shift + S | : | Launch an external editor to edit the selected lines, or the diff hunk beneath the text cursor when nothing is selected, and then stage or unstage the edited diff
Ctrl + D | : | View diff using `git difftool`
Ctrl + F | : | Search diff for matching text
Ctrl + G | : | Search diff for the next text match
Ctrl + Shift + G | : | Search diff for the previous text match
Alt + Shift + C | : | Copy Diff to clipboard (strips diff +/- prefixes)
Ctrl + Shift + D | : | View directory diff using `git difftool --dir-diff`
Shift | : | Hold Shift to select text when moving the cursor with H, J, K, L and Arrow keys
Space / Shift + Space | : | Page Down / Page Up
0 (Zero) | : | Move cursor to the start of the line
$ (Shift + 4) | : | Move cursor to the end of the line
G G | : | Move cursor to the start of the diff
Shift + G | : | Move cursor to the end of the diff

|  | Browser actions
Ctrl + Shift + H | : | View history
Ctrl + Shift + D | : | View diff against predecessor

|  | Navigation
H | : | Move left/collapse
J / Alt + J | : | Move down
K / Alt + K | : | Move up
L | : | Move right/expand
Ctrl + J | : | Focus the Diff Editor
Ctrl + K | : | Focus the Status tool
Ctrl + L | : | Focus the Commit summary, Grep query, DAG query, ...