Como você git mostra arquivos não rastreados que não existem no .gitignore


167

Estou usando git status -upara mostrar arquivos não rastreados. E no terminal, vejo muitos arquivos não rastreados que precisam ser rastreados, como testes de unidade, documentação pessoal etc. Eu os coloquei .gitignore, mas parece que git statusainda os mostra.

Como você mostra apenas arquivos não rastreados que não existem no .gitignore.


11
se os arquivos não rastreados forem mostrados no status git, eles não serão ignorados pelo .gitignore corretamente. você pode mostrar a estrutura de diretórios de trabalho e o conteúdo .gitignore?
max

7
Concorde com @max, ele deve funcionar. Aqui está um palpite: se você estiver no Windows, saiba que .gitignore, diferente do Windows, faz distinção entre maiúsculas e minúsculas. Portanto, se você ignorar * .txt e houver um Test.TXT no disco, ele não será ignorado.
Joe White

Respostas:


268

Você pode listar explicitamente o que está sendo rastreado e não rastreado da seguinte maneira para ver se o Git está vendo e honrando o seu .gitignore. Se você publicar seu .gitignoreconteúdo, git statussaída e / dirou lspodemos ajudá-lo melhor.

Listar arquivos ignorados

$ git ls-files . --ignored --exclude-standard --others

Listar arquivos não rastreados

$ git ls-files . --exclude-standard --others

3
Se você vir arquivos que não achou que estavam no seu .gitignore, pode haver outro escondido no seu projeto. Crie com `find. -name .gitignore`.
jpadvo

@ matthew-mccullough Ótima resposta! Vou adicionar alguns apelidos para esses agradecimentos! @jpadvo Você pode dar um exemplo de uso para o findmétodo?
lacostenycoder

Se você quiser uma lista curta, diga que está ignorando node_modules e não deseja ver a árvore inteira, adicione --directoryapenas a pasta de nível superior que está sendo ignorada será impressa (isso é mais próximo do status do git).
Henry Blyth

2
Para esclarecer, git ls-files --others --exclude-standard --ignoredlista os arquivos git ls-files --others --exclude-standardignorados não rastreados e os não ignorados não rastreados. Mais sobre isso aqui .
X-yuri

1
Observe que, por padrão git ls-files --others, não lista diretórios vazios. Para listar diretórios vazios, adicione a --directoryopção Isso não é óbvio na página de manual, mas pode ser deduzido. --directory: Se um diretório inteiro for classificado como "outro", mostre apenas seu nome (com uma barra à direita) e não todo o seu conteúdo. . --no-empty-directory: Não liste diretórios vazios. Não tem efeito sem --diretório.
catanman


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.