Estou tentando desfazer todas as alterações desde o meu último commit. Eu tentei git reset --hard
e git reset --hard HEAD
depois de ver este post . Eu respondo com a cabeça agora em 18c3773 ... mas quando olho para a minha fonte local, todos os arquivos ainda estão lá. o que estou perdendo?
git
command-line
undo
git-reset
Antarr Byrd
fonte
fonte
Respostas:
Isso desestabilizará todos os arquivos com os quais você pode ter preparado
git add
:Isso reverterá todas as alterações não confirmadas locais (devem ser executadas no repo root):
Você também pode reverter as alterações não confirmadas apenas para um arquivo ou diretório específico:
Ainda outra maneira de reverter todas as alterações não confirmadas (mais para digitar, mas funciona em qualquer subdiretório):
Isso removerá todos os arquivos não rastreados locais, portanto, apenas os arquivos rastreados pelo git permanecem:
Para resumir: a execução de comandos abaixo é basicamente equivalente a nova
git clone
fonte original (mas não faz o download novamente, é muito mais rápido):O uso típico para isso seria nos scripts de construção, quando você deve garantir que sua árvore esteja absolutamente limpa - não possui modificações ou arquivos de objetos criados localmente ou cria artefatos, e você deseja fazê-la funcionar muito rápido e não clonar repositório inteiro toda vez.
fonte
git clean
, ele desfaz alterações não confirmadas, mas mantém todos os arquivos não rastreados ou adicionados. Porém, isso pode afetar o resultado da compilação porque alguns arquivos não rastreados podem estar interferindo. Por exemplo, e se o diretório .idea estiver corrompido?git reset
me diz que tenho mudanças eu preciso para salvargit clean -fdx
excluiu meunode_modules
e.env
, ótimoSe você deseja " desfazer " todas as alterações não confirmadas, execute:
Se você tiver arquivos não rastreados (verifique executando
git status
), eles podem ser removidos executando:git stash
cria um novo stash que se tornará stash @ {0} . Se você deseja verificar primeiro, pode corrergit stash list
para ver uma lista dos seus esconderijos. Será algo como:Cada stash é nomeado após a mensagem de confirmação anterior.
fonte
git add .
antesgit stash
porque ele estava me mostrando mudanças uncommited mesmo depoisgit stash
também há
git stash
- que "esconde" as alterações locais e pode ser reaplicado posteriormente ou descartado se não for mais necessáriomais informações sobre esconderijo
fonte
Estou usando a árvore de origem .... Você pode reverter todas as alterações não confirmadas com 2 etapas fáceis:
1) basta redefinir o status do arquivo da área de trabalho
2) selecione todos os arquivos de estágio (comando + a), clique com o botão direito do mouse e selecione remover
É simples assim: D
fonte
O que eu faço é
Um forro:
git add . && git stash && git stash drop
fonte
Para quem chegou aqui procurando se poderia desfazer
git clean -f -d
, pelo qual um arquivo criado no eclipse foi excluído,Você pode fazer o mesmo na interface do usuário usando "restaurar a partir do histórico local" para ref: Restaurar a partir do histórico local
fonte
Estados em transição de um commit para um novo commit
Ação para transição de estado
Check diff
Reverter para a última confirmação
Equivalente ao clone git, sem baixar novamente nada
fonte