Perché .gitignore non ignora i miei file?


Risposte:


220

.gitignoreignora solo i file che non fanno ancora parte del repository. Se hai già modificato git addalcuni file, le loro modifiche verranno comunque tracciate. Per rimuovere quei file dal tuo repository (ma non dal tuo file system) usa git rm --cachedsu di essi.


9
git rm --cached nome_file.ext funziona bene per me aggiornare gitignore per un file. Grazie.
sybozz

3
L'ho fatto, ma GitHub vuole ancora tracciarli e aggiungerli.
Netside

94

Il file .gitignore garantisce che i file non tracciati da Git rimangano non tracciati.

La semplice aggiunta di cartelle / file a un file .gitignore non ne annullerà il tracciamento: rimarranno tracciati da Git.

Per annullare la tracciabilità dei file, è necessario rimuovere dal repository i file tracciati elencati nel file .gitignore. Quindi aggiungili di nuovo e salva le modifiche.

Il modo più semplice e completo per farlo è rimuovere e memorizzare nella cache tutti i file nel repository, quindi aggiungerli nuovamente. Tutte le cartelle / file elencati nel file .gitignore non verranno tracciati. Dalla cartella superiore del repository eseguire i seguenti comandi:

git rm -r --cached . git add .

Quindi salva le modifiche:

git commit -m "Untrack files in .gitignore"

Tieni presente che qualsiasi commit precedente con i file indesiderati rimarrà nella cronologia dei commit. Quando si esegue il push su GitHub, tenere presente una cronologia di commit che potrebbe contenere .envo client_secret.jsonfile.

La migliore pratica è creare un file .gitignore e popolarlo con le cartelle / file che non si desidera tenere traccia quando si avvia un progetto. Tuttavia, spesso è necessario aggiungere al file .gitignore dopo essersi resi conto che i file indesiderati vengono tracciati e archiviati.


grazie per la risposta. Questo ha davvero aiutato. Non dimenticare di spingere il repo fino a git
Chris Reed il

Dopo aver utilizzato git rm -r --cached .il rollback di tutte le modifiche, funziona anche per aggiungere nuovamente tutti i file che non dovrebbero essere esclusi con .gitignore .
Adam Hurwitz

8

gitignore ignora solo i file non tracciati. I tuoi file sono contrassegnati come modificati, il che significa che sono stati salvati e il passato e il loro sono ora tracciati da git.

Per ignorarli, devi prima eliminarli, eliminarli git rm, eseguire il commit e quindi ignorarli.


7

Puoi usare questo,

git rm -r --cached ./node_modules

se vuoi ignorare node_modules, ad esempio


4

Guarda questo: .gitignore non funziona E in particolare il commento di ADTC:

Assicurati che il tuo file .gitignore utilizzi la codifica ANSI o UTF-8. Se utilizza qualcos'altro come Unicode BOM, è possibile che Git non possa leggere il file. - ADTC 14 dicembre 17 alle 12:39


0

Per prima cosa elimina il file index.lock dal tuo repository git

rm -f .git/index.lock

e quindi aggiungi .gitignore

git add .gitignore
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.