Preparar (ou remover) apenas uma parte de um arquivo com git

Às vezes, você deseja preparar apenas uma parte de uma mudança para dividir em commits separados.

É para isso que git stage --patch|-pfoi projetado:

Irá aparecer um texto ui onde você pode ver sua mudança como um diff. Cada “grande parte” é automaticamente dividida pelo git em pequenos pedaços.

Aqui está um resumo do comando disponível:

y - stage this hunk
n
- do not stage this hunk
q
- quit; do not stage this hunk nor any of the remaining ones
a
- stage this hunk and all later hunks in the file
d
- do not stage this hunk nor any of the later hunks in the file
g
- select a hunk to go to
/ - search for a hunk matching the given regex
j
- leave this hunk undecided, see next undecided hunk
J
- leave this hunk undecided, see next hunk
k
- leave this hunk undecided, see previous undecided hunk
K
- leave this hunk undecided, see previous hunk
s
- split the current hunk into smaller hunks
e
- manually edit the current hunk
? - print help

Para tirar o palco, siga o mesmo fluxo de trabalho, mas use git reset --patch