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.

justjoe
fonte
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
Matthew McCullough
fonte
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
-3
git update-index --no-assume-unchanged <file>
Brooks Folk
fonte
11
Por favor, adicione algumas explicações para sua resposta
M Khalid Junaid
-6

Usar:

git config status.showuntrackedfiles no 
Ohad Sadan
fonte
Na versão atual do git, recebo error: Invalid untracked files mode 'yes'quando tento usá-lo.
Mike
1
Os valores possíveis são no, normal, all. É explicado aqui: git-scm.com/docs/git-config
Muhammad Gelbana
4
Isso não responde à pergunta.
lacostenycoder