listar - Como remover arquivos locais(não rastreados) da árvore de trabalho atual do Git?




listar branches git (20)

Maneira simples de remover arquivos não rastreados

Para remover todos os arquivos não rastreados, a maneira simples é adicionar todos eles primeiro e redefinir o repo como abaixo

git add --all
git reset --hard HEAD

Como você exclui arquivos locais não rastreados de sua árvore de trabalho atual?


Limpe o repositório git e todos os submódulos recursivamente

O comando a seguir limpará o repositório git atual e todos os seus submódulos recursivamente:

(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)

Tenha cuidado ao executar o comando `git clean`.

Sempre use -n antes de executar o comando real, pois ele mostrará quais arquivos seriam removidos.

git clean -n -d 
git clean -f -d

Por padrão, o git clean só remove arquivos não rastreados que não são ignorados. Qualquer arquivo que corresponda a um padrão no seu .gitignore ou outro arquivo ignorado não será removido. Se você quiser remover esses arquivos também, você pode adicionar um -x ao comando clean.

git clean -f -d -x

Há também o modo interativo disponível -i com o comando clean

git clean -x -i

alternativamente

Se você não tem 100% de certeza de que a exclusão do seu trabalho não confirmado é segura, você pode usar stashing

git stash --all

Ele também limpará seu diretório, mas lhe dará flexibilidade para recuperar os arquivos a qualquer momento, usando stash com apply ou pop . Então, em um ponto posterior, você poderá limpar seu estoque usando:

git stash drop // or clean

A melhor maneira é usar: git clean

git clean -d -x -f

Isso remove arquivos não acompanhados, incluindo diretórios (-d) e arquivos ignorados pelo git (-x) .

Além disso, substitua o argumento -f por -n para executar uma execução a dry-run ou -i para o modo interativo e ele informará o que será removido.


De acordo com a documentação do Git git clean

Remover arquivos não rastreados da árvore de trabalho

O passo 1 é mostrar o que será excluído usando a opção -n :

git clean -n

Clean Step - cuidado: isso excluirá arquivos :

git clean -f
  • Para remover diretórios, execute git clean -f -d ou git clean -fd
  • Para remover arquivos ignorados, execute git clean -f -X ou git clean -fX
  • Para remover arquivos ignorados e não ignorados, execute git clean -f -x ou git clean -fx

Observe a diferença de caso no X para os dois últimos comandos.

Se clean.requireForce estiver definido como "true" (o padrão) em sua configuração, é necessário especificar -f caso contrário, nada acontecerá.

Novamente, consulte os documentos git-clean para mais informações.

Opções

-f

--força

Se a variável de configuração do Git, clean.requireForce, não estiver definida como false, o git clean recusará a execução, a menos que seja dado -f, -n ou -i.

-x

Não use as regras padrão de ignorar lidas de .gitignore (por diretório) e $ GIT_DIR / info / exclude, mas ainda use as regras de ignorar fornecidas com as opções -e. Isso permite remover todos os arquivos não acompanhados, incluindo produtos de criação. Isso pode ser usado (possivelmente em conjunto com o git reset) para criar um diretório de trabalho primitivo para testar uma compilação limpa.

-X

Remova apenas arquivos ignorados pelo Git. Isso pode ser útil para reconstruir tudo do zero, mas manter arquivos criados manualmente.

-n

--funcionamento a seco

Na verdade, não remova nada, apenas mostre o que seria feito.

-d

Remova os diretórios não acompanhados, além dos arquivos não acompanhados. Se um diretório não rastreado for gerenciado por um repositório Git diferente, ele não será removido por padrão. Use a opção -f duas vezes se você realmente quiser remover esse diretório.


Estou surpreso que ninguém tenha mencionado isso antes:

git clean -i

Isso significa interativo e você terá uma visão geral rápida do que será excluído, oferecendo a possibilidade de incluir / excluir os arquivos afetados. No geral, ainda mais rápido do que executar o obrigatório --dry-run antes da limpeza real.

Você terá que lançar um -d se você também quiser cuidar de pastas vazias. No final, é um bom apelido:

git iclean

Dito isto, o uso extra de comandos interativos pode ser cansativo para usuários experientes. Hoje em dia eu uso apenas o já mencionado git clean -fd


Isso é o que eu sempre uso:

git clean -fdx

Para um projeto muito grande, você pode querer executá-lo algumas vezes.


O comando normal git clean não remove arquivos não rastreados com minha git version 2.9.0.windows.1 .

$ git clean -fdx     # doesn't remove untracked files
$ git clean -fdx *   # Append star then it works!

Para remover os arquivos não rastreados, você deve primeiro usar o comando para visualizar os arquivos que serão afetados pela limpeza

git clean -fdn

Isso mostrará a lista de arquivos que serão excluídos. Agora, para realmente excluir esses arquivos, use este comando:

git clean -fd

Para saber o que será excluído antes de excluir:

git clean -d -n

Isso irá produzir algo como:

Removeria o exemplo.txt

Para excluir tudo listado na saída do comando anterior:

git clean -d -f

Isso irá produzir algo como:

Removendo o exemplo.txt


Se necessário para remover arquivos não rastreados de um subdiretório específico,

git clean -f {dir_path}

E forma combinada para excluir dir / untracked arquivos / arquivos ignorados.

git clean -fxd {dir_path}

depois disso você terá arquivos modificados apenas no git status .


Se o diretório untracked é um repositório git próprio (por exemplo, submódulo), você precisa usar -f duas vezes:

git clean -d -f -f


Um lifehack para tal situação eu apenas inventei e tentei (isso funciona perfeitamente):

git add .
git reset --hard HEAD

Cuidado! Certifique-se de confirmar todas as alterações necessárias (mesmo em arquivos não não-rastreados) antes de fazer isso .


Use git clean -f -d para certificar-se de que os diretórios também sejam removidos.

Você pode então verificar se seus arquivos estão realmente com git status .


git-clean é o que você está procurando. Ele é usado para remover arquivos não rastreados da árvore de trabalho.


git clean -f -d -x $(git rev-parse --show-cdup) aplica clean no diretório raiz, não importa onde você o chame dentro de uma árvore de diretórios do repositório. Eu uso isso o tempo todo, pois não obriga você a deixar a pasta onde você está trabalhando agora e permite limpar e confirmar desde o lugar onde você está.

Certifique-se de que os flags -f , -d , -x correspondam às suas necessidades:

-d
       Remove untracked directories in addition to untracked files. If an
       untracked directory is managed by a different Git repository, it is
       not removed by default. Use -f option twice if you really want to
       remove such a directory.

-f, --force
       If the Git configuration variable clean.requireForce is not set to
       false, git clean will refuse to delete files or directories unless
       given -f, -n or -i. Git will refuse to delete directories with .git
       sub directory or file unless a second -f is given. This affects
       also git submodules where the storage area of the removed submodule
       under .git/modules/ is not removed until -f is given twice.

-x
       Don't use the standard ignore rules read from .gitignore (per
       directory) and $GIT_DIR/info/exclude, but do still use the ignore
       rules given with -e options. This allows removing all untracked
       files, including build products. This can be used (possibly in
       conjunction with git reset) to create a pristine working directory
       to test a clean build.

Existem outros flags disponíveis, apenas verifique git clean --help .


git clean -fd remove o diretório

git clean -fX remove arquivos ignorados

git clean -fx remove git clean -fx ignorados e não ignorados

pode ser usado todas as opções acima em combinação como

git clean -fdXx

verifique o manual do git para mais ajuda


Abordagem interativa do usuário:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y

-i para interativo
-f para forçar
-d para o diretório
-x para arquivos ignorados (adicionar, se necessário)

Nota: Adicione -n ou --dry-run para verificar o que ele fará.


Remova todas as pastas e arquivos extras neste repositório + submódulos

Isso faz com que você fique no mesmo estado de clone fresco.

git clean -ffdx

Remova todas as pastas e arquivos extras neste repositório, mas não seus submódulos

git clean -fdx

Remover apenas pastas extras, mas não arquivos (ex. Pasta de compilação)

git clean -fd

Remover pastas extras + arquivos ignorados (mas não quaisquer arquivos adicionados recentemente)

Se o arquivo não foi ignorado e ainda não foi feito o check-in, ele permanece. Observe a capital X.

git clean -fdX

Novo modo interativo

git clean

oh-my-zsh com zsh fornece esses grandes aliases através do plugin git. Eles podem ser usados ​​em bash também.

gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'

  • gclean remove diretórios não gclean além de arquivos não rastreados .
  • gpristine redefinir hard as mudanças locais, remover diretórios não rastreados, arquivos não rastreados e não usar as regras padrão de ignorar lidas de .gitignore (por diretório) e $ GIT_DIR / info / exclude, mas ainda usar as regras ignore dadas com opções -e . Isso permite remover todos os arquivos não acompanhados, incluindo produtos de criação. Isso pode ser usado (possivelmente em conjunto com o git reset) para criar um diretório de trabalho primitivo para testar uma compilação limpa .




git-branch