Existe um comando git para reverter todas as alterações não confirmadas em uma árvore e índice de trabalho e também remover arquivos e pastas recém-criados?
1071
Existe um comando git para reverter todas as alterações não confirmadas em uma árvore e índice de trabalho e também remover arquivos e pastas recém-criados?
Respostas:
Você pode executar estes dois comandos:
fonte
git clean -i
para um modo interativo.git merge --abort
.Se você deseja reverter as alterações apenas no diretório de trabalho atual, use
E antes disso, você pode listar os arquivos que serão revertidos sem realmente executar nenhuma ação, apenas para verificar o que acontecerá, com:
fonte
git reset --hard
?Use "git checkout - ..." para descartar as alterações no diretório de trabalho
ou
remove todas as alterações feitas em arquivos não estágios no status git, por exemplo
fonte
git checkout -- *
não funciona para mim, a menos que eu esteja no diretório em que os arquivos alterados estão localizados. Para a verificação de todos os arquivos em toda a todo o repositório, você deve fazergit checkout -- :/
git checkout -- *
, a estrela é substituída pelo Shell, com todos os arquivos e diretórios no diretório atual. Portanto, deve ir em subdiretórios. Funciona para mim. Mas, graças a destacar a sintaxe ": /" que parece mais limpa na minha opinião.Uma maneira não trivial é executar estes dois comandos:
git stash
Isso moverá suas alterações para o stash, levando você de volta ao estado de HEADgit stash drop
Isso excluirá o último stash criado no último comando.fonte
fatal: git-write-tree: error building trees Cannot save the current index state
não ajudou, novos arquivos permaneceram. O que eu fiz foi excluir totalmente toda a árvore de trabalho e depois
Consulte " Como limpo meu diretório de trabalho local no git? " Para obter conselhos para adicionar a
-x
opção de limpeza:O
-x
sinalizador de nota removerá todos os arquivos ignorados pelo Git, portanto, tenha cuidado (consulte a discussão na resposta à qual me refiro).fonte
Eu acho que você pode usar o seguinte comando:
git reset --hard
fonte
Observe que ainda pode haver arquivos que parecem não desaparecer - eles podem não ter sido editados, mas o git pode tê-los marcado como editados devido a alterações no CRLF / LF. Veja se você fez algumas alterações
.gitattributes
recentemente.No meu caso, adicionei configurações de CRLF ao
.gitattributes
arquivo e todos os arquivos permaneceram na lista "arquivos modificados" por causa disso. Alterar as configurações de .gitattributes os fez desaparecer.fonte
Se você tiver uma alteração não confirmada (apenas na sua cópia de trabalho) que deseja reverter para a cópia em sua confirmação mais recente, faça o seguinte:
fonte
git rm filename
, e não está funcionando.error: pathspec 'filename' did not match any file(s) known to git.
git rm
égit checkout master -- filename
O Git 2.23 introduziu o
git restore
comando para restaurar os arquivos da árvore de trabalho.https://git-scm.com/docs/git-restore
Para restaurar todos os arquivos no diretório atual
Se você deseja restaurar todos os arquivos de origem C para corresponder à versão no índice, é possível fazer
fonte
Você pode apenas usar o seguinte comando git, que pode reverter todas as alterações não confirmadas feitas no seu repositório:
Exemplo:
fonte
Eu costumo usar desta maneira que funciona bem:
fonte
Um caminho seguro e longo:
git branch todelete
git checkout todelete
git add .
git commit -m "I did a bad thing, sorry"
git checkout develop
git branch -D todelete
fonte
Usar:
Por exemplo:
fonte