C'è un modo per capire perché alcuni file vengono ignorati da git (ovvero quale regola in un .gitignore
file sta causando l'ignoramento del file)?
Immagina di avere questo (o uno scenario molto più complesso, con centinaia di cartelle e decine di .gitignore
file:
/
-.gitignore
-folder/
-.gitignore
-subfolder/
-.gitignore
-file.txt
Se git add folder/subfolder/file.txt
eseguo git, potrei lamentarmi del fatto che è stato ignorato:
The following paths are ignored by one of your .gitignore files:
folder/subfolder/file.txt
Use -f if you really want to add them.
C'è un modo per sapere quale tra tutti i possibili .gitignore
ha una regola per ignorare questo file e mostrare anche la regola? Piace:
The following paths are ignored by your folder/.gitignore file (line 12: *.txt)
folder/subfolder/file.txt
Use -f if you really want to add them.
O semplicemente:
$ git why-is-ignored folder/subfolder/file.txt
folder/.gitignore:12:*.txt
GIT_TRACE_EXCLUDE=1 git status
presto sarà un ulteriore modo per eseguire il debug delle .gitignore
regole. Vedi la mia risposta modificata di seguito
git check-ignore
presto (git1.8.5 / 1.9) avrà--no-index
un'opzione. Vedi la mia risposta qui sotto