Quando eu corro git reset --hard HEAD
, é suposto redefinir para uma versão original do que você puxou, como eu a entendo. Infelizmente, ele deixa os arquivos por aí, como git status
mostra uma grande lista de arquivos não rastreados.
Como você diz ao git "Basta trazer de volta exatamente o que estava na última tentativa, nada mais, nada menos"?
git reset --hard
redefine seu índice e reverte os arquivos rastreados de volta ao estado em que estão no HEAD. Deixa arquivos não rastreados em paz.Respostas:
Você precisa usar
git clean -f -d
para se livrar de arquivos e diretórios não rastreados em sua cópia de trabalho.Se você precisar redefinir todo o repositório para dominar, incluindo todos os sub-módulos git, execute este script:
fonte
-x
se você deseja remover seus arquivos .gitignored e voltar ao estado original.-n
ao teste seria removido primeiro. combine todos eles em um argumento:-dfn
git clean -qfdx
aqui. Remova tudo e faça-o silenciosamente.-d -f
pode ser decalred duas vezes-dff
para-d -f -f
, isso vai apagar diretórios ALL untracked, incluindo diretórios untracked protegidas.Se você possui arquivos que ainda deseja manter:
git clean -di
fará uma limpeza interativa que permite excluir apenas os arquivos / diretórios que você não deseja mais.fonte
ou, zsh fornece um alias 'gpristine':
O que é realmente útil.
Se estiver trabalhando em um repositório bifurcado, certifique-se de buscar e redefinir o repositório / ramificação correto, por exemplo:
fonte
-x
como se você tivesse apenas clonado o repo. Se é isso que você quer, é perfeito. Se você deseja excluir arquivos não rastreados , a remoção da-x
opção funciona bem.gpristine
Abordagem interativa do usuário:
-i para interativo
-f para forçar
-d para o diretório
-x para arquivos ignorados (inclua se necessário)
Nota: Adicione -n ou --dry-run para verificar apenas o que ele fará.
fonte
Você pode usar
git stash
. Você precisa especificar--include-untracked
, caso contrário, você terminará com o problema original.Em seguida, basta soltar a última entrada no esconderijo
Você pode criar um alias prático para isso e chamar
git wipe
por exemplo:fonte
O comando que você está procurando é
git clean
fonte
git-clean
Use para remover arquivos não rastreados na árvore de trabalho. A seguir, estão algumas opções (resumidas) que podem ser usadas com ogit clean
comando-d
use quando nenhum caminho for especificado. Então, o git recurse em diretórios não rastreados os remove.-f/--force
Para remover arquivos não rastreados aninhados.-i/--interactive
Mostre o que seria feito e limpe os arquivos interativamente.-n/--dry-run
Mostre o que acontecerá sem remover nada.-x
ignorar arquivosexemplo:
git clean -f -d
-> Remova todos os arquivos não rastreados no diretório atual, todos os subdiretórios.fonte
Você pode ter feito uma reinicialização suave em algum momento. Você pode resolver esse problema fazendo
fonte