# Lazygit menu

## Global

<pre>
  <kbd>m</kbd>: view merge/rebase options
  <kbd>P</kbd>: push
  <kbd>p</kbd>: pull
  <kbd>R</kbd>: refresh
</pre>

## Status

<pre>
  <kbd>e</kbd>: edit config file
  <kbd>o</kbd>: open config file
  <kbd>u</kbd>: check for update
  <kbd>s</kbd>: switch to a recent repo
</pre>

## Files

<pre>
  <kbd>c</kbd>: commit changes
  <kbd>A</kbd>: amend last commit
  <kbd>C</kbd>: commit changes using git editor
  <kbd>space</kbd>: toggle staged
  <kbd>d</kbd>: delete if untracked / checkout if tracked
  <kbd>e</kbd>: edit file
  <kbd>o</kbd>: open file
  <kbd>i</kbd>: add to .gitignore
  <kbd>r</kbd>: refresh files
  <kbd>S</kbd>: stash files
  <kbd>s</kbd>: soft reset to last commit
  <kbd>a</kbd>: stage/unstage all
  <kbd>t</kbd>: add patch
  <kbd>D</kbd>: reset hard and remove untracked files
  <kbd>enter</kbd>: stage individual hunks/lines
  <kbd>f</kbd>: fetch
</pre>

## Branches

<pre>
  <kbd>space</kbd>: checkout
  <kbd>o</kbd>: create pull request
  <kbd>c</kbd>: checkout by name
  <kbd>F</kbd>: force checkout
  <kbd>n</kbd>: new branch
  <kbd>d</kbd>: delete branch
  <kbd>r</kbd>: rebase branch
  <kbd>M</kbd>: merge into currently checked out branch
  <kbd>f</kbd>: fast-forward this branch from its upstream
</pre>

## Commits

<pre>
  <kbd>s</kbd>: squash down
  <kbd>r</kbd>: reword commit
  <kbd>R</kbd>: rename commit with editor
  <kbd>g</kbd>: reset to this commit
  <kbd>f</kbd>: fixup commit
  <kbd>d</kbd>: delete commit
  <kbd>J</kbd>: move commit down one
  <kbd>K</kbd>: move commit up one
  <kbd>e</kbd>: edit commit
  <kbd>A</kbd>: amend commit with staged changes
  <kbd>p</kbd>: pick commit (when mid-rebase)
  <kbd>t</kbd>: revert commit
  <kbd>c</kbd>: copy commit (cherry-pick)
  <kbd>C</kbd>: copy commit range (cherry-pick)
  <kbd>v</kbd>: paste commits (cherry-pick)
</pre>

## Stash

<pre>
  <kbd>space</kbd>: apply
  <kbd>g</kbd>: pop
  <kbd>d</kbd>: drop
</pre>

## Main (Normal)

<pre>
  <kbd>PgDn</kbd>: scroll down
  <kbd>PgUp</kbd>: scroll up
</pre>

## Main (Staging)

<pre>
  <kbd>esc</kbd>: return to files panel
  <kbd>▲</kbd>: select previous line
  <kbd>▼</kbd>: select next line
  <kbd>◄</kbd>: select previous hunk
  <kbd>►</kbd>: select next hunk
  <kbd>space</kbd>: stage line
  <kbd>a</kbd>: stage hunk
</pre>

## Main (Merging)

<pre>
  <kbd>esc</kbd>: return to files panel
  <kbd>space</kbd>: pick hunk
  <kbd>b</kbd>: pick both hunks
  <kbd>◄</kbd>: select previous conflict
  <kbd>►</kbd>: select next conflict
  <kbd>▲</kbd>: select top hunk
  <kbd>▼</kbd>: select bottom hunk
  <kbd>z</kbd>: undo
</pre>