| 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 | : | 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 |
| Ctrl + 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 |
| Ctrl + 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. |
| 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, ... |