You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run go generate ./... from the project root.
Lazygit Keybindings
Legend: <c-b> means ctrl+b, <a-b> means alt+b, B means shift+b
Global keybindings
Key
Action
Info
<c-r>
Switch to a recent repo
<pgup> (fn+up/shift+k)
Scroll up main window
<pgdown> (fn+down/shift+j)
Scroll down main window
@
View command log options
View options for the command log e.g. show/hide the command log and focus the command log.
P
Push
Push the current branch to its upstream branch. If no upstream is configured, you will be prompted to configure an upstream branch.
p
Pull
Pull changes from the remote for the current branch. If no upstream is configured, you will be prompted to configure an upstream branch.
)
Increase rename similarity threshold
Increase the similarity threshold for a deletion and addition pair to be treated as a rename.
(
Decrease rename similarity threshold
Decrease the similarity threshold for a deletion and addition pair to be treated as a rename.
}
Increase diff context size
Increase the amount of the context shown around changes in the diff view.
{
Decrease diff context size
Decrease the amount of the context shown around changes in the diff view.
:
Execute shell command
Bring up a prompt where you can enter a shell command to execute.
<c-p>
View custom patch options
m
View merge/rebase options
View options to abort/continue/skip the current merge/rebase.
R
Refresh
Refresh the git state (i.e. run git status, git branch, etc in background to update the contents of panels). This does not run git fetch.
+
Next screen mode (normal/half/fullscreen)
_
Prev screen mode
?
Open keybindings menu
<c-s>
View filter options
View options for filtering the commit log, so that only commits matching the filter are shown.
W
View diffing options
View options relating to diffing two refs e.g. diffing against selected ref, entering ref to diff against, and reversing the diff direction.
<c-e>
View diffing options
View options relating to diffing two refs e.g. diffing against selected ref, entering ref to diff against, and reversing the diff direction.
q
Quit
<esc>
Cancel
<c-w>
Toggle whitespace
Toggle whether or not whitespace changes are shown in the diff view.
z
Undo
The reflog will be used to determine what git command to run to undo the last git command. This does not include changes to the working tree; only commits are taken into consideration.
<c-z>
Redo
The reflog will be used to determine what git command to run to redo the last git command. This does not include changes to the working tree; only commits are taken into consideration.
List panel navigation
Key
Action
Info
,
Previous page
.
Next page
< (<home>)
Scroll to top
> (<end>)
Scroll to bottom
v
Toggle range select
<s-down>
Range select down
<s-up>
Range select up
/
Search the current view by text
H
Scroll left
L
Scroll right
]
Next tab
[
Previous tab
Commit files
Key
Action
Info
<c-o>
Copy path to clipboard
y
Copy to clipboard
c
Checkout
Checkout file. This replaces the file in your working tree with the version from the selected commit.
d
Remove
Discard this commit's changes to this file. This runs an interactive rebase in the background, so you may get a merge conflict if a later commit also changes this file.
If a file is selected, enter the file so that you can add/remove individual lines to the custom patch. If a directory is selected, toggle the directory.
`
Toggle file tree view
Toggle file view between flat and tree layout. Flat layout shows all file paths in a single list, tree layout groups files by directory.
-
Collapse all files
Collapse all directories in the files tree
=
Expand all files
Expand all directories in the file tree
0
Focus main view
/
Search the current view by text
Commit summary
Key
Action
Info
<enter>
Confirm
<esc>
Close
Commits
Key
Action
Info
<c-o>
Copy commit hash to clipboard
<c-r>
Reset copied (cherry-picked) commits selection
b
View bisect options
s
Squash
Squash the selected commit into the commit below it. The selected commit's message will be appended to the commit below it.
f
Fixup
Meld the selected commit into the commit below it. Similar to squash, but the selected commit's message will be discarded.
r
Reword
Reword the selected commit's message.
R
Reword with editor
d
Drop
Drop the selected commit. This will remove the commit from the branch via a rebase. If the commit makes changes that later commits depend on, you may need to resolve merge conflicts.
e
Edit (start interactive rebase)
Edit the selected commit. Use this to start an interactive rebase from the selected commit. When already mid-rebase, this will mark the selected commit for editing, which means that upon continuing the rebase, the rebase will pause at the selected commit to allow you to make changes.
i
Start interactive rebase
Start an interactive rebase for the commits on your branch. This will include all commits from the HEAD commit down to the first merge commit or main branch commit.
If you would instead like to start an interactive rebase from the selected commit, press e.
p
Pick
Mark the selected commit to be picked (when mid-rebase). This means that the commit will be retained upon continuing the rebase.
F
Create fixup commit
Create 'fixup!' commit for the selected commit. Later on, you can press S on this same commit to apply all above fixup commits.
S
Apply fixup commits
Squash all 'fixup!' commits, either above the selected commit, or all in current branch (autosquash).
<c-j>
Move commit down one
<c-k>
Move commit up one
V
Paste (cherry-pick)
B
Mark as base commit for rebase
Select a base commit for the next rebase. When you rebase onto a branch, only commits above the base commit will be brought across. This uses the git rebase --onto command.
A
Amend
Amend commit with staged changes. If the selected commit is the HEAD commit, this will perform git commit --amend. Otherwise the commit will be amended via a rebase.
a
Amend commit attribute
Set/Reset commit author or set co-author.
t
Revert
Create a revert commit for the selected commit, which applies the selected commit's changes in reverse.
T
Tag commit
Create a new tag pointing at the selected commit. You'll be prompted to enter a tag name and optional description.
<c-l>
View log options
View options for commit log e.g. changing sort order, hiding the git graph, showing the whole git graph.
Create a new branch and move the unpushed commits of the current branch to it. Useful if you meant to start new work and forgot to create a new branch first.
Note that this disregards the selection, the new branch is always created either from the main branch or stacked on top of the current branch (you get to choose which). |
| g | Reset | View reset options (soft/mixed/hard) for resetting onto selected item. |
| C | Copy (cherry-pick) | Mark commit as copied. Then, within the local commits view, you can press V to paste (cherry-pick) the copied commit(s) into your checked out branch. At any time you can press <esc> to cancel the selection. |
| <c-t> | Open external diff tool (git difftool) | |
| * | Select commits of current branch | |
| 0 | Focus main view | |
| <enter> | View files | |
| w | View worktree options | |
| / | Search the current view by text | |
Stash all changes. For other variations of stashing, use the view stash options keybinding.
S
View stash options
View stash options (e.g. stash all, stash staged, stash unstaged).
a
Stage all
Toggle staged/unstaged for all files in working tree.
<enter>
Stage lines / Collapse directory
If the selected item is a file, focus the staging view so you can stage individual hunks/lines. If the selected item is a directory, collapse/expand it.
d
Discard
View options for discarding changes to the selected file.
g
View upstream reset options
D
Reset
View reset options for working tree (e.g. nuking the working tree).
`
Toggle file tree view
Toggle file view between flat and tree layout. Flat layout shows all file paths in a single list, tree layout groups files by directory.
<c-t>
Open external diff tool (git difftool)
M
Open external merge tool
Run git mergetool.
f
Fetch
Fetch changes from remote.
-
Collapse all files
Collapse all directories in the files tree
=
Expand all files
Expand all directories in the file tree
0
Focus main view
/
Search the current view by text
Local branches
Key
Action
Info
<c-o>
Copy branch name to clipboard
i
Show git-flow options
<space>
Checkout
Checkout selected item.
n
New branch
N
Move commits to new branch
Create a new branch and move the unpushed commits of the current branch to it. Useful if you meant to start new work and forgot to create a new branch first.
Note that this disregards the selection, the new branch is always created either from the main branch or stacked on top of the current branch (you get to choose which). |
| o | Create pull request | |
| O | View create pull request options | |
| <c-y> | Copy pull request URL to clipboard | |
| c | Checkout by name | Checkout by name. In the input box you can enter '-' to switch to the last branch. |
| F | Force checkout | Force checkout selected branch. This will discard all local changes in your working directory before checking out the selected branch. |
| d | Delete | View delete options for local/remote branch. |
| r | Rebase | Rebase the checked-out branch onto the selected branch. |
| M | Merge | View options for merging the selected item into the current branch (regular merge, squash merge) |
| f | Fast-forward | Fast-forward selected branch from its upstream. |
| T | New tag | |
| s | Sort order | |
| g | Reset | |
| R | Rename branch | |
| u | View upstream options | View options relating to the branch's upstream e.g. setting/unsetting the upstream and resetting to the upstream. |
| <c-t> | Open external diff tool (git difftool) | |
| 0 | Focus main view | |
| <enter> | View commits | |
| w | View worktree options | |
| / | Filter the current view by text | |
Main panel (merging)
Key
Action
Info
<space>
Pick hunk
b
Pick all hunks
<up>
Previous hunk
<down>
Next hunk
<left>
Previous conflict
<right>
Next conflict
z
Undo
Undo last merge conflict resolution.
e
Edit file
Open file in external editor.
o
Open file
Open file in default application.
M
Open external merge tool
Run git mergetool.
<esc>
Return to files panel
Main panel (normal)
Key
Action
Info
mouse wheel down (fn+up)
Scroll down
mouse wheel up (fn+down)
Scroll up
<tab>
Switch view
Switch to other view (staged/unstaged changes).
<esc>
Exit back to side panel
/
Search the current view by text
Main panel (patch building)
Key
Action
Info
<left>
Go to previous hunk
<right>
Go to next hunk
v
Toggle range select
a
Select hunk
Toggle hunk selection mode.
<c-o>
Copy selected text to clipboard
o
Open file
Open file in default application.
e
Edit file
Open file in external editor.
<space>
Toggle lines in patch
<esc>
Exit custom patch builder
/
Search the current view by text
Main panel (staging)
Key
Action
Info
<left>
Go to previous hunk
<right>
Go to next hunk
v
Toggle range select
a
Select hunk
Toggle hunk selection mode.
<c-o>
Copy selected text to clipboard
<space>
Stage
Toggle selection staged / unstaged.
d
Discard
When unstaged change is selected, discard the change using git reset. When staged change is selected, unstage the change.
Create a new branch and move the unpushed commits of the current branch to it. Useful if you meant to start new work and forgot to create a new branch first.
Note that this disregards the selection, the new branch is always created either from the main branch or stacked on top of the current branch (you get to choose which). |
| g | Reset | View reset options (soft/mixed/hard) for resetting onto selected item. |
| C | Copy (cherry-pick) | Mark commit as copied. Then, within the local commits view, you can press V to paste (cherry-pick) the copied commit(s) into your checked out branch. At any time you can press <esc> to cancel the selection. |
| <c-r> | Reset copied (cherry-picked) commits selection | |
| <c-t> | Open external diff tool (git difftool) | |
| * | Select commits of current branch | |
| 0 | Focus main view | |
| <enter> | View commits | |
| w | View worktree options | |
| / | Filter the current view by text | |
Remote branches
Key
Action
Info
<c-o>
Copy branch name to clipboard
<space>
Checkout
Checkout a new local branch based on the selected remote branch, or the remote branch as a detached head.
n
New branch
M
Merge
View options for merging the selected item into the current branch (regular merge, squash merge)
r
Rebase
Rebase the checked-out branch onto the selected branch.
d
Delete
Delete the remote branch from the remote.
u
Set as upstream
Set the selected remote branch as the upstream of the checked-out branch.
s
Sort order
g
Reset
View reset options (soft/mixed/hard) for resetting onto selected item.
<c-t>
Open external diff tool (git difftool)
0
Focus main view
<enter>
View commits
w
View worktree options
/
Filter the current view by text
Remotes
Key
Action
Info
<enter>
View branches
n
New remote
d
Remove
Remove the selected remote. Any local branches tracking a remote branch from the remote will be unaffected.
e
Edit
Edit the selected remote's name or URL.
f
Fetch
Fetch updates from the remote repository. This retrieves new commits and branches without merging them into your local branches.
/
Filter the current view by text
Secondary
Key
Action
Info
<tab>
Switch view
Switch to other view (staged/unstaged changes).
<esc>
Exit back to side panel
/
Search the current view by text
Stash
Key
Action
Info
<space>
Apply
Apply the stash entry to your working directory.
g
Pop
Apply the stash entry to your working directory and remove the stash entry.
d
Drop
Remove the stash entry from the stash list.
n
New branch
Create a new branch from the selected stash entry. This works by git checking out the commit that the stash entry was created from, creating a new branch from that commit, then applying the stash entry to the new branch as an additional commit.
Create a new branch and move the unpushed commits of the current branch to it. Useful if you meant to start new work and forgot to create a new branch first.
Note that this disregards the selection, the new branch is always created either from the main branch or stacked on top of the current branch (you get to choose which). |
| g | Reset | View reset options (soft/mixed/hard) for resetting onto selected item. |
| C | Copy (cherry-pick) | Mark commit as copied. Then, within the local commits view, you can press V to paste (cherry-pick) the copied commit(s) into your checked out branch. At any time you can press <esc> to cancel the selection. |
| <c-r> | Reset copied (cherry-picked) commits selection | |
| <c-t> | Open external diff tool (git difftool) | |
| * | Select commits of current branch | |
| 0 | Focus main view | |
| <enter> | View files | |
| w | View worktree options | |
| / | Search the current view by text | |
Submodules
Key
Action
Info
<c-o>
Copy submodule name to clipboard
<enter>
Enter
Enter submodule. After entering the submodule, you can press <esc> to escape back to the parent repo.
d
Remove
Remove the selected submodule and its corresponding directory.
u
Update
Update selected submodule.
n
New submodule
e
Update submodule URL
i
Initialize
Initialize the selected submodule to prepare for fetching. You probably want to follow this up by invoking the 'update' action to fetch the submodule.
b
View bulk submodule options
/
Filter the current view by text
Tags
Key
Action
Info
<c-o>
Copy tag to clipboard
<space>
Checkout
Checkout the selected tag as a detached HEAD.
n
New tag
Create new tag from current commit. You'll be prompted to enter a tag name and optional description.
d
Delete
View delete options for local/remote tag.
P
Push tag
Push the selected tag to a remote. You'll be prompted to select a remote.
g
Reset
View reset options (soft/mixed/hard) for resetting onto selected item.
<c-t>
Open external diff tool (git difftool)
0
Focus main view
<enter>
View commits
w
View worktree options
/
Filter the current view by text
Worktrees
Key
Action
Info
n
New worktree
<space>
Switch
Switch to the selected worktree.
o
Open in editor
d
Remove
Remove the selected worktree. This will both delete the worktree's directory, as well as metadata about the worktree in the .git directory.