Existe a possibilidade de reverter um arquivo confirmado no Git? Empurrei um commit para o GitHub e então percebi que há um arquivo que eu não queria que fosse enviado (não terminei as alterações).
Existe a possibilidade de reverter um arquivo confirmado no Git? Empurrei um commit para o GitHub e então percebi que há um arquivo que eu não queria que fosse enviado (não terminei as alterações).
Respostas:
atualização: método mais seguro adicionado
verifique o estado anterior (inalterado) de seu arquivo; observe o traço duplo
git checkout HEAD^ -- /path/to/file
cometê-lo:
git commit -am "revert changes on this file, not finished with it yet"
empurre, nenhuma força necessária:
git push
volte ao seu trabalho inacabado, faça novamente (3 vezes com a seta para cima):
git checkout HEAD^ -- /path/to/file
Para modificar o último commit do repositório HEAD, ofuscando seu trabalho acidentalmente empurrado, enquanto pode entrar em conflito com seu colega que já pode ter feito isso, e que vai crescer cabelos grisalhos e perder muito tempo tentando reconciliar o chefe de seu branch local com o central:
Para remover a alteração do arquivo do último commit:
para reverter o arquivo para o estado anterior ao último commit, faça:
git checkout HEAD^ /path/to/file
para atualizar o último commit com o arquivo revertido, faça:
git commit --amend
para enviar o commit atualizado para o repo, faça:
git push -f
Realmente, considere usar o método preferido mencionado antes.
git checkout HEAD~2 /path/to/file
? Edit: Parece que o que eu queria no meu caso era simplesmentegit rm /path/to/file
Se você deseja remover o arquivo do repo remoto, primeiro remova-o do seu projeto com a opção --cache e, em seguida, envie-o:
git rm --cache /path/to/file
git commit -am "Remove file"
git push
(Isso funciona mesmo se o arquivo foi adicionado ao repositório remoto alguns commits atrás) Lembre-se de adicionar ao .gitignore as extensões de arquivo que você não deseja enviar.
Você pode reverter apenas um arquivo para uma revisão especificada.
Primeiro você pode verificar em quais commits o arquivo foi alterado.
git log path/to/file.txt
Então você pode fazer o checkout do arquivo com o número da revisão.
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
Depois disso, você pode confirmar e enviar novamente.
Redefina o arquivo em um estado correto, confirme e envie novamente.
Se tiver certeza de que ninguém mais buscou suas alterações ainda, você pode usar --amend
ao fazer o commit, para modificar o seu commit anterior (isto é, reescrever o histórico), e então enviar. Acho que você terá que usar a -f
opção ao empurrar, para forçar o empurrão, no entanto.
Obtenha o código hash do último commit.
git log
git revert <hash_code_from_git_log>
git push
confira no GHR. você pode obter o que precisa, espero que seja útil