2.7 KiB
title | localeTitle |
---|---|
When to Undoredo | Quando a Undoredo |
Você normalmente deseja UNDO / REDO quando você confirma algumas mudanças no git e percebe que as mudanças precisam ser removidas / revertidas. Isso é muito comum em cenários, por exemplo, quando você faz uma alteração temporária em alguns arquivos e se esquece de revertê-los, depois passa a adicioná-los ao commit acidentalmente.
O fluxo de trabalho UNDO / REDO:
Supondo que você fez algumas alterações e fez commits como:
git commit -m "Commit 1 - Some changes to the code"
git commit -m "Commit 2 - Some MORE changes to the code"
- (UNDO-ing):
git reset --soft HEAD~
o último commitgit reset --soft HEAD~
- Faça as alterações.
- Adicione seus arquivos à área de preparação
git add <filenames or paths>
ougit add --all
- (REDO-ing): faça o commit.
git commit -c ORIG_HEAD
ougit commit -C ORIG_HEAD
Como é que isso funciona?
Agora que você sabe o fluxo, vamos entender como isso funciona nos bastidores.
Step 1
redefine o último commit, ou seja,"Commit 2 - Some MORE..."
volta para o"Commit 1 - Some..."
commit.- Na
Step 2
, você faz as alterações necessárias para os arquivos. - Na
Step 3
, você adiciona os arquivos alterados à área de preparação seletivamente comgit add <filenames>
ou todos os arquivos comgit add --all
. - Na etapa final, você confirma as alterações na área de preparação.
Nota: você pode usar -c
ou -C
. O small -c
abrirá um editor para modificar a mensagem de commit, neste caso será Commit 2 - Some MORE...
Você pode editar a mensagem de confirmação conforme desejar.
Ou, alternativamente, você pode usar as maiúsculas e minúsculas -C
, onde o git irá pular a janela do editor e reutilizar a mensagem LAST commit, que neste caso é Commit 2 - Some MORE...
Reutilizar a mensagem de confirmação "Same" também é conhecida como refazer / reconfirmar.
Unstage antes de um commit
Para desfazer uma alteração preparada antes de um commit, simplesmente execute git reset <file>
ou git reset
para desassociar todas as mudanças antes de um commit.
Nota: Em versões mais antigas do git, os comandos eram git reset HEAD <file>
e git reset HEAD
respectivamente. Isso foi mudado no Git 1.8.2
Mais alguns truques:
Você pode voltar qualquer número de commits usando git reset --soft HEAD~n
onde você quer desfazer os últimos n
commits.
Atribuição:
Este artigo é baseado em uma pergunta sobre estouro de pilha aqui e aqui .