C'è un modo per capire perché alcuni file vengono ignorati da git (ovvero quale regola in un .gitignorefile sta causando l'ignoramento del file)?
Immagina di avere questo (o uno scenario molto più complesso, con centinaia di cartelle e decine di .gitignorefile:
/
-.gitignore
-folder/
-.gitignore
-subfolder/
-.gitignore
-file.txt
Se git add folder/subfolder/file.txteseguo 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 .gitignoreha 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 statuspresto sarà un ulteriore modo per eseguire il debug delle .gitignoreregole. Vedi la mia risposta modificata di seguito
git check-ignorepresto (git1.8.5 / 1.9) avrà--no-indexun'opzione. Vedi la mia risposta qui sotto