stage follows lazygit’s keymap. Where both tools have an action, lazygit’s key
wins, so most of this is already in your hands.
Every binding has an id, such as files.stage. The id is what you write in the
configuration, and it is the last column of the table below.
Press ;, then 3 for the Keys section. Find the binding with /, press
enter on it, press enter again, then press the key you want.
Read Settings for what stage does with a key that is
already bound, and with a key it cannot spell.
The keys section maps a binding id to a key:
"files.stash" : "<disabled>"
The notation is lazygit’s:
Written
Means
x
The letter x
X
Shift and x
<c-q>
Control and q
<esc>, <enter>, <tab>, <space>
The named key
<disabled>
Nothing. The action loses its key
stage reads the whole keys section before it draws anything, and it takes all
of it or none of it.
A section with a fault opens a modal that names the entry. stage does not drop
the bad line and start with the rest. A keymap that is almost what you asked for
is worse than one that stops.
These are the faults it names:
An id that does not exist.
A key that another binding in the same context already uses.
A lazygit binding name instead of a stage id. The modal names the stage id you
meant.
One id can appear in several contexts, and an override rewrites all of them
together.
stage also drops the written hint for that binding. A binding that shows j/k
by default shows only your key afterwards, so the footer keeps telling the truth
about the keys you have.
Which table applies depends on where you are. Read
Panels, modes and contexts .
Press ? in the app for the same information as the table below, narrowed to
where you are standing.
Generated from the app’s own keymap table — the same one that drives dispatch,
the footer and the ? modal. Section titles are the app’s too.
Key
Action
Binding id
c
commit
global.commit
A
amend
global.amend
1-5
jump to panel
global.jump
E
explorer
global.explorer
tab
next panel
global.nextPanel
shift+tab
prev panel
global.prevPanel
R
refresh
global.refresh
@
command log
global.commandLog
ctrl+g
grep
global.grep
#
review comments
global.review
ctrl+p
patch options
global.patchOptions
:
shell command
global.shellCommand
m
merge/rebase options
op.menu
z
undo
global.undo
Z
redo
global.redo
+/_
screen mode
global.nextScreenMode
_
prev screen mode
global.prevScreenMode
ctrl+z
suspend
global.suspend
ctrl+w
toggle whitespace
global.whitespace
}
more diff context
global.moreContext
{
less diff context
global.lessContext
)
rename similarity
global.moreRenames
(
rename similarity down
global.lessRenames
ctrl+r
recent repos
global.recentRepos
;
settings
global.settings
?
help
global.help
q
quit
global.quit
Key
Action
Binding id
shift+↓/↑
extend selection
list.rangeDown
shift+↑
extend up
list.rangeUp
j/k
navigate
list.down
k
up
list.up
,/.
page
list.pageUp
.
page down
list.pageDown
</>
first/last
list.first
>
last
list.last
enter
focus diff
list.open
h
prev panel
list.prevPanel
l
next panel
list.nextPanel
v
select
list.rangeToggle
J/K
scroll diff
list.scrollMainDown
K
scroll diff up
list.scrollMainUp
ctrl+o
yank
list.yank
/
filter
list.filter
esc
clear filter
list.clearFilter
Key
Action
Binding id
enter
apply
filter.apply
esc
clear
filter.clear
bksp
close
filter.dismiss
ctrl+c
quit
global.quit
Key
Action
Binding id
enter
recent repos
status.recentRepos
Key
Action
Binding id
space
stage/unstage
files.stage
a
toggle all
files.stageAll
d
discard
files.discard
s
stash
files.stash
enter
edit hunks
files.editHunks
ctrl+v
cycle file view
files.viewFile
`
tree view
files.toggleTree
-
collapse all
list.collapseAll
=
expand all
list.expandAll
o
open
files.open
e
edit
files.edit
i
ignore
files.ignore
w
commit w/o hooks
files.commitNoHooks
f
fetch
files.fetch
r
refresh
files.refresh
ctrl+f
find fixup base
commits.findFixupBase
S
stash options
files.stashMenu
D
discard options
files.discardMenu
ctrl+s
filter log by file
files.filterPath
ctrl+b
filter by status
files.statusFilter
ctrl+t
difftool
diff.tool
C
commit w/ editor
files.commitEditor
]/[
tab
branches.nextTab
[
prev tab
branches.prevTab
Key
Action
Binding id
space
switch
worktrees.switch
n
new
worktrees.new
d
remove
worktrees.delete
o
open in editor
worktrees.open
]/[
tab
branches.nextTab
[
prev tab
branches.prevTab
Key
Action
Binding id
space
enter
submodules.enter
u
update
submodules.update
i
init
submodules.init
d
remove
submodules.remove
n
add
submodules.add
e
edit url
submodules.editUrl
b
bulk actions
submodules.bulk
]/[
tab
branches.nextTab
[
prev tab
branches.prevTab
Key
Action
Binding id
enter
open
explorer.open
h/l
fold
explorer.collapse
l
expand
explorer.expand
e
edit
explorer.edit
]/[
tab
branches.nextTab
[
prev tab
branches.prevTab
ctrl+v
cycle view
explorer.viewFile
-
collapse all
list.collapseAll
=
expand all
list.expandAll
1-5
git panels
explorer.jumpBack
Key
Action
Binding id
]/[
tab
branches.nextTab
[
prev tab
branches.prevTab
1-5
git panels
search.jumpBack
Key
Action
Binding id
esc
back
staging.back
space
stage/unstage
staging.apply
d
discard
staging.discard
tab
other side
staging.side
v
select
staging.select
a
select hunk
staging.selectHunk
]/[
hunk
staging.nextHunk
[
prev hunk
staging.prevHunk
j/k
move
staging.down
k
up
staging.up
ctrl+d/u
half page
staging.halfDown
ctrl+u
half up
staging.halfUp
f/b
page
staging.pageDown
pgup
page up
staging.pageUp
</>
first/last
staging.first
>
last
staging.last
ctrl+o
yank selection
staging.yank
e
edit at line
staging.edit
c
commit
staging.commit
C
commit w/ editor
files.commitEditor
w
code nav (read view only)
staging.codeNavUnavailable
+/_
screen mode
global.nextScreenMode
_
prev screen mode
global.prevScreenMode
?
help
global.help
q
quit
global.quit
Key
Action
Binding id
esc
back
resolve.back
space
take side
resolve.pick
b
take both
resolve.both
j/k
switch side
resolve.side
h/l
conflict
resolve.next
h
prev conflict
resolve.prev
z
undo pick
resolve.undo
+/_
screen mode
global.nextScreenMode
_
prev screen mode
global.prevScreenMode
?
help
global.help
q
quit
global.quit
Key
Action
Binding id
enter
execute
plan.execute
esc
cancel
plan.cancel
p
pick
plan.pick
r
reword
plan.reword
e
edit
plan.edit
s
squash
plan.squash
f
fixup
plan.fixup
d
drop
plan.drop
J/K
move
plan.moveDown
K
move up
plan.moveUp
j/k
nav
plan.down
k
up
plan.up
</>
first/last
plan.first
>
last
plan.last
+/_
screen mode
global.nextScreenMode
_
prev screen mode
global.prevScreenMode
?
help
global.help
q
quit
global.quit
Key
Action
Binding id
space
checkout
branches.checkout
c
checkout by name
branches.checkoutByName
F
force checkout
branches.forceCheckout
U
browse tree
branches.tree
n
new
branches.new
d
delete
branches.delete
R
rename
branches.rename
M
merge
branches.merge
r
rebase
branches.rebase
p/P
pull/push
branches.pull
P
push
branches.push
u
upstream
branches.setUpstream
N
move to new branch
branches.moveToNewBranch
f
fast-forward
branches.fastForward
s
sort order
branches.sortOrder
-
prev branch
branches.previous
o
create PR
branches.openPr
O
PR options
branches.prOptions
ctrl+y
copy PR url
branches.copyPrUrl
G
open PR
branches.openPrInBrowser
W
diff against
diff.menu
ctrl+t
difftool
diff.tool
w
new worktree
worktrees.newFromRef
]/[
tab
branches.nextTab
[
prev tab
branches.prevTab
Key
Action
Binding id
space
checkout
remotes.checkout
enter
expand/open
remotes.open
n
new
remotes.new
d
delete
remotes.delete
e
edit remote
remotes.edit
f
fetch
remotes.fetch
s
sort order
remotes.sortOrder
W
diff against
diff.menu
ctrl+t
difftool
diff.tool
w
new worktree
worktrees.newFromRef
]/[
tab
branches.nextTab
[
prev tab
branches.prevTab
Key
Action
Binding id
space
checkout
tags.checkout
n
new
tags.new
d
delete
tags.delete
P
push
tags.push
g
reset to
tags.reset
W
diff against
diff.menu
ctrl+t
difftool
diff.tool
w
new worktree
worktrees.newFromRef
]/[
tab
branches.nextTab
[
prev tab
branches.prevTab
Key
Action
Binding id
space
checkout
commits.checkout
C
copy pick
commits.copyPick
V
paste picks
commits.pastePick
B
mark rebase base
commits.markBase
*
select branch commits
commits.selectBranch
A
amend into
commits.amendInto
a
author
commits.amendAttribute
r
reword
commits.reword
T
tag commit
commits.tag
i
rebase plan
commits.rebasePlan
n
new branch
commits.newBranch
e
edit (stop here)
commits.editCommit
ctrl+k / alt+↑
move commit up
commits.moveUp
ctrl+j / alt+↓
move commit down
commits.moveDown
ctrl+s
filter by path
commits.filterPath
s
squash
commits.squash
f
fixup
commits.fixup
F
create fixup
commits.createFixup
S
squash fixups
commits.squashFixups
d
drop
commits.drop
t
revert
commits.revert
g
reset
commits.reset
y
yank
commits.yank
o
open in browser
commits.openInBrowser
U
browse tree
commits.tree
enter
view files
commits.viewFiles
ctrl+f
find fixup base
commits.findFixupBase
ctrl+r
reset picks
commits.resetPick
W
diff against
diff.menu
ctrl+t
difftool
diff.tool
w
new worktree
worktrees.newFromRef
]/[
tab
branches.nextTab
[
prev tab
branches.prevTab
Key
Action
Binding id
space
checkout
reflog.checkout
g
reset
reflog.reset
c
cherry-pick
reflog.cherryPick
C
copy pick
reflog.copyPick
ctrl+r
reset picks
commits.resetPick
n
new branch
reflog.newBranch
U
browse tree
reflog.tree
W
diff against
diff.menu
ctrl+t
difftool
diff.tool
w
new worktree
worktrees.newFromRef
]/[
tab
branches.nextTab
[
prev tab
branches.prevTab
Key
Action
Binding id
space
cherry-pick
log.pick
C
copy pick
log.copyPick
ctrl+r
reset picks
commits.resetPick
U
browse tree
log.tree
j/k
move
log.down
k
up
log.up
</>
first/last
log.first
>
last
log.last
esc
back
log.back
Key
Action
Binding id
enter
go to reference
references.pick
j/k
move
references.down
k
up
references.up
</>
first/last
references.first
>
last
references.last
esc
back
references.back
Key
Action
Binding id
enter
go to line
review.pick
y
copy review
review.copy
s
send to agent
review.send
e
edit
review.edit
d
delete
review.delete
j/k
move
review.down
k
up
review.up
</>
first/last
review.first
>
last
review.last
esc
back
review.back
Key
Action
Binding id
ctrl+s
save comment
noteEdit.save
esc
cancel
noteEdit.cancel
ctrl+c
quit
global.quit
Key
Action
Binding id
space
apply
stash.apply
g
pop
stash.pop
d
drop
stash.drop
r
rename
stash.rename
W
diff against
diff.menu
w
new worktree
worktrees.newFromRef
Key
Action
Binding id
m
merge/rebase options
op.menu
Key
Action
Binding id
esc
back
main.back
j/k
scroll
main.down
k
up
main.up
d/u
half page
main.halfDown
u
half up
main.halfUp
space/b
page
main.pageDown
pgup
page up
main.pageUp
</>
top/bottom
main.first
>
bottom
main.last
M
full diff
main.fullDiff
v
select lines
main.select
/
search in view
main.search
n/N
next/prev match
main.nextMatch
N
prev match
main.prevMatch
w/W
next identifier
main.identNext
W
prev identifier
main.identPrev
g
go to definition
main.gotoDef
s
jump to symbol
main.symbols
r
references
main.references
K
hover
main.hover
shift+tab
jump back
main.jumpBack
tab
jump forward
main.jumpForward
Key
Action
Binding id
enter
jump
mainSearch.apply
esc
cancel
mainSearch.clear
bksp
close
mainSearch.dismiss
ctrl+c
quit
global.quit
Key
Action
Binding id
esc
back
mainSelect.back
v
anchor
mainSelect.select
ctrl+o
yank
mainSelect.yank
c
comment
mainSelect.comment
#
review comments
global.review
j/k
move
mainSelect.down
k
up
mainSelect.up
tab
other side
mainSelect.otherSide
ctrl+d/u
half page
mainSelect.halfDown
ctrl+u
half up
mainSelect.halfUp
f/b
page
mainSelect.pageDown
pgup
page up
mainSelect.pageUp
</>
first/last
mainSelect.first
>
last
mainSelect.last
+/_
screen mode
global.nextScreenMode
_
prev screen mode
global.prevScreenMode
?
help
global.help
ctrl+c
quit
global.quit
Key
Action
Binding id
esc
back
cmdlog.back
j/k
scroll
cmdlog.down
k
up
cmdlog.up
d/u
half page
cmdlog.halfDown
u
half up
cmdlog.halfUp
</>
top/bottom
cmdlog.first
>
bottom
cmdlog.last
+/_
screen mode
global.nextScreenMode
_
prev screen mode
global.prevScreenMode
?
help
global.help
q
quit
global.quit
Key
Action
Binding id
esc
back (patch kept)
pbfiles.back
space
toggle file
pbfiles.toggle
enter
select lines
pbfiles.open
ctrl+p
patch options
pbfiles.options
j/k
navigate
pbfiles.down
k
up
pbfiles.up
</>
first/last
pbfiles.first
>
last
pbfiles.last
+/_
screen mode
global.nextScreenMode
_
prev screen mode
global.prevScreenMode
?
help
global.help
q
quit
global.quit
Key
Action
Binding id
esc
back to files
pbedit.back
space
toggle lines
pbedit.toggle
v
select
pbedit.select
ctrl+p
patch options
pbedit.options
]/[
hunk
pbedit.nextHunk
[
prev hunk
pbedit.prevHunk
j/k
move
pbedit.down
k
up
pbedit.up
</>
first/last
pbedit.first
>
last
pbedit.last
+/_
screen mode
global.nextScreenMode
_
prev screen mode
global.prevScreenMode
?
help
global.help
q
quit
global.quit
363 bindings across 29 contexts.