O único problema que tive com esta resposta é que ela deixou cópias para o arquivo2 no disco.
precisa saber é o seguinte
9
No meu caso, movi uma pasta inteira e percebi que não deveria.
Gostei muito da resposta de @Dave Konopka, mas não tive muito sucesso com essa abordagem (talvez minha versão do GIT (1.8.4)?) Meus arquivos ainda foram exibidos como excluídos. Houve outras alterações na pilha que não queria perder (infelizmente).
Depende do que você deseja realizar. Se você deseja que ele apareça como se o arquivo nunca tivesse sido movido, é possível redefinir (ou refazer a recuperação) antes da mudança. Se você não se importa com a história, basta recuar.
O primeiro funciona bem desde que você não tenha enviado seu commit ou alguém não tenha retirado de você.
CanSpice
7
Se você tiver renomeado acidentalmente um grande número de arquivos e quer voltar para onde você começou, apagar todos os arquivos renomeados que aparecem como addssob umagit status chamada.
Depois de excluir todos os arquivos alterados, você pode executar git checkout -- *para recuperar os nomes dos arquivos originais localmente.
O truque que usei foi fazer um git stash para desfazer todas as minhas alterações (o que inclui restaurar os arquivos mv'd) e, em seguida, excluí-lo com o git stash drop.
git mv file2 file1
Respostas:
Resposta não atrevida:
Verifique a documentação do git mv
fonte
git checkout .
que não funciona, mesmo com a-f
opção?git checkout -- .
.fatal: source directory is empty,
apenasgit reset --hard
funcionou.Se você não fez outras alterações (que deseja manter) desde a última confirmação, poderá fazer
fonte
git reset --hard
. Apenas movê-lo para trás parece uma opção mais segura para mim.fez o truque para mim
fonte
No meu caso, movi uma pasta inteira e percebi que não deveria.
Gostei muito da resposta de @Dave Konopka, mas não tive muito sucesso com essa abordagem (talvez minha versão do GIT (1.8.4)?) Meus arquivos ainda foram exibidos como excluídos. Houve outras alterações na pilha que não queria perder (infelizmente).
Eu tive sucesso fazendo isso:
fonte
Depende do que você deseja realizar. Se você deseja que ele apareça como se o arquivo nunca tivesse sido movido, é possível redefinir (ou refazer a recuperação) antes da mudança. Se você não se importa com a história, basta recuar.
fonte
Se você tiver renomeado acidentalmente um grande número de arquivos e quer voltar para onde você começou, apagar todos os arquivos renomeados que aparecem como
adds
sob umagit status
chamada.Depois de excluir todos os arquivos alterados, você pode executar
git checkout -- *
para recuperar os nomes dos arquivos originais localmente.fonte
O primeiro comando desestaca file2, mas deixa uma cópia dele por aí. O segundo comando restaura o arquivo original e o terceiro exclui o novo arquivo.
fonte
O truque que usei foi fazer um git stash para desfazer todas as minhas alterações (o que inclui restaurar os arquivos mv'd) e, em seguida, excluí-lo com o git stash drop.
fonte
Menos assustador é ir para o nível superior do repositório e fazer:
git redefinir
git checkout.
fonte