Isso mudou minha vida git : git add -p {files}
Você possivelmente já fez isso antes, percorreu os pedaços de código a serem corrigidos. Talvez até mesmo acerte (s) neste ponto e siga seu caminho feliz, mas uma opção é manualmente (e) ditar o pedaço.
Você verá o seguinte:
# ...
@@ -1,2 +1,4 @@
this is some existing content
+hello
+world
and a little more too
# ...
Digamos que você esteja adicionando um novo recurso que usa todos os “hello” s nos arquivos e chama a função “hello”, então não precisamos da linha “world” … Exclua-o.
Você não está excluindo o código para sempre, você apenas o está excluindo deste patch sendo aplicado ao código, compondo este próximo commit; MAS, a cópia de trabalho em seus arquivos ainda terá aquela linha, apenas não faz parte deste commit.
Porém, tenha cuidado, você ainda precisa manter a linha “e um pouco mais”, porque o patch está usando isso como uma âncora. Faça suas edições, salve o arquivo, feche o editor e execute os seguintes comandos para ver o que aconteceu:
git diff –cached – Compara o commit atualmente testado com o seu repositório local
--- a/example-file
+++ b/example-file
@@ -1,2 +1,3 @@
this is some existing content
+hello
and a little more too
git diff – Compara os arquivos de trabalho (arquivos em seu diretório) com o commit atualmente testado
--- a/example-file
+++ b/example-file
@@ -1,3 +1,4 @@
this is some existing content
hello
+world
and a little more too
A razão disso mostrar a linha “hello” é porque é isso que está sentado em seu commit encenado agora. Então, tudo é incrível.
E se você quiser desfazer o que acabou de fazer? Você pode sempre acessar o reset HEAD e voltar, iniciando o processo novamente.