Domanda Ignora i file che sono già stati impegnati in un repository Git [duplicato]


Questa domanda ha già una risposta qui:

Ho un repository Git già inizializzato che ho aggiunto a .gitignore file su Come posso aggiornare l'indice del file in modo che i file che voglio ignorati vengano ignorati?


2188
2017-07-16 19:26


origine


risposte:


Per annullare la traccia a singolo file che è già stato aggiunto / inizializzato al tuo repository, cioè, smetti di tracciare il file ma non cancellarlo dal tuo sistema usa: git rm --cached filename

Srotolare ogni file che ora è nel tuo .gitignore:

In primo luogo, commetti eventuali modifiche al codice in sospesoe quindi eseguire questo comando:

git rm -r --cached .

Ciò rimuove qualsiasi file modificato dal indice(area di staging), quindi esegui semplicemente:

git add .

Impegnati:

git commit -m ".gitignore is now working"

Per annullare git rm --cached filename, uso git add filename.

Assicurati di impegnare tutte le tue importanti modifiche prima dell'esecuzione git add .    In caso contrario, si perderanno eventuali modifiche ad altri file.


3655
2017-07-06 17:09



Se stai cercando di ignorare le modifiche a un file già tracciato nel repository (ad esempio un file dev.properties che avresti bisogno di cambiare per l'ambiente locale ma non vorresti mai controllare queste modifiche) rispetto a quello che vuoi fare è:

git update-index --assume-unchanged <file>

Se vuoi iniziare nuovamente a monitorare le modifiche

git update-index --no-assume-unchanged <file>

Vedere git-update-index (1) Pagina manuale.

Dai anche un'occhiata al skip-worktree e no-skip-worktree opzioni per update-index se è necessario persistere dopo un git-reset (attraverso)


Aggiornare: Dal momento che le persone hanno chiesto, ecco un alias conveniente (e aggiornato dal commentato qui sotto) per vedere quali file sono attualmente "ignorati" (--assume-unchanged) nel tuo spazio di lavoro locale

$ git config --global alias.ignored = !git ls-files -v | grep "^[[:lower:]]"

518
2017-09-14 23:55



Per annullare la traccia di un file che è già stato aggiunto / inizializzato al repository, ovvero interrompere il rilevamento del file ma non eliminarlo dal proprio sistema: git rm --cached filename


351
2017-07-18 08:15



Sì - .gitignore il sistema ignora solo i file non attualmente sotto controllo di versione da git.

Cioè se hai già aggiunto un file chiamato test.txt utilizzando git-add, quindi aggiungendo test.txt a .gitignore causerà comunque modifiche a test.txt da tracciare.

Dovresti git rm test.txt prima e commetti questo cambiamento. Solo allora cambierà in test.txt essere ignorato


78
2018-02-02 15:59



Rimuovi spazi bianchi finali in .gitignore

Inoltre, assicurati di non avere spazi bianchi finali nel tuo .gitignore. Sono arrivato a questa domanda perché stavo cercando una risposta, poi ho avuto la strana sensazione di dover aprire l'editor invece di catingare .gitignore. Rimosso un singolo spazio extra dalla fine e puf ora funziona :)


50
2017-07-15 07:22



Ho seguito questi passaggi

git rm -r --cached .
git add .
git reset HEAD

dopodiché, git cancella tutti i file (* .swp nel mio caso) che dovrebbero essere ignoranti.


40
2018-03-02 09:00



Se si desidera interrompere il monitoraggio del file senza eliminare il file dal sistema locale, che preferisco per ignorarlo config/database.yml file. Basta provare:

git rm --cached config/database.yml
# this will delete your file from git history but not from your local system.

ora aggiungi questo file a .gitignorefile e commetti le modifiche. E d'ora in poi, qualsiasi modifica apportata a config / database.yml non verrà tracciata da git.

$ echo config/database.yml >> .gitignore

Grazie


37
2017-08-21 14:20



Per rimuovere solo alcuni file specifici da tracciamento:

git update-index --assume-unchanged path/to/file

Se mai vuoi iniziare a seguirlo di nuovo:

git update-index --no-assume-unchanged path/to/file                      

28
2018-04-17 07:21



Come dice dav_i, per mantenere il file in repo e tuttavia rimuoverlo dalle modifiche senza creare un commit extra puoi usare:

git update-index --assume-unchanged filename

26
2018-04-12 20:39



Non sapendo bene cosa ha fatto il comando 'risposta', l'ho eseguito, con mio grande sgomento. Rimuove in modo ricorsivo ogni file dal tuo repository git.

Stackoverflow per il salvataggio ... Come ripristinare una "git rm -r."?

git reset HEAD

Il trucco, dal momento che avevo file locali non salvati che non volevo sovrascrivere.


24
2017-07-19 05:38