Eu acabei de fazer um
git commit -m "blah"
em seguida, adicionei alguns arquivos, como faço para reverter e remover o que está em meus arquivos atuais que ainda não foram adicionados / confirmados?
Eu acabei de fazer um
git commit -m "blah"
em seguida, adicionei alguns arquivos, como faço para reverter e remover o que está em meus arquivos atuais que ainda não foram adicionados / confirmados?
Respostas:
Caveat Emptor - Comandos destrutivos à frente.
Mitigação - git reflog pode salvá-lo se precisar.
1) DESFAZER alterações de arquivos locais e MANTER seu último commit
git reset --hard
2) DESFAZER alterações de arquivos locais e REMOVER seu último commit
git reset --hard HEAD^
3) MANTER as alterações do arquivo local e REMOVER seu último commit
git reset --soft HEAD^
Se você deseja remover conteúdos e arquivos recém-adicionados que já foram testados (adicionados ao índice), use:
git reset --hard
Se você deseja remover também o seu último commit (aquele com a mensagem "blá"), é melhor usar:
git reset --hard HEAD^
Para remover os arquivos não rastreados (para que novos arquivos ainda não tenham sido adicionados ao índice) e as pastas, use:
git clean --force -d
git reset --hard forçará o diretório de trabalho de volta ao último commit e excluirá os arquivos novos / alterados.
Você pode reverter um commit usando git revert HEAD^para reverter para o penúltimo commit. Você também pode especificar o commit para reverter usando o id em vez de HEAD ^
Se você deseja apenas descomprimir o último commit, use isto:
git reset HEAD~
funciona como charme para mim.
Uma maneira fácil e infalível de UNDO alterações de arquivos locais desde o último commit é colocá-los em um novo branch:
git branch changes
git checkout changes
git add .
git commit
Isso deixa as mudanças no novo ramo. Retorne ao branch original para encontrá-lo de volta ao último commit:
git checkout master
O novo branch é um bom lugar para praticar diferentes maneiras de reverter as alterações sem risco de bagunçar o branch original.