2009-11-30 19 views
80

Vorrei interrompere Git visualizzando i file ignorati in git status, perché con tonnellate di documenti di configurazione e di configurazione nell'elenco di file modificati ma non aggiornati, rende la lista quasi inutile.Mantieni i file ignorati dallo stato git

È normale che Git mostri questi file?

ho messo l'informazione ignora in un file .gitignore nella directory radice del repository Git e non sono aggiunti quando si utilizza git add . ma sembra che essi non sono completamente ignorati o, come essi compaiono nella lista di cui sopra e non mostrare nell'elenco stampato da git ls-files --others -i --exclude-standard. Solo i file corrispondenti ai modelli in ~/.gitignore vengono visualizzati qui.

Potrebbe essere perché in una fase precedente non li ho ignorati e sono stati così commessi almeno una volta?

risposta

138

Come ho trovato in this post, .gitignore funziona solo per file non tracciati. Se sono stati aggiunti file al repository, è possibile:

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

o rimuoverli dalla repository da

git rm --cached <file> 

Modifica

This article spiega che anche

+0

'git update-index --assume-unchanged ' non ha funzionato (lo aveva provato), ma 'git rm --cached ' ha fatto il lavoro. Grazie! L'indice di aggiornamento – knuton

+2

ha funzionato per me. Un problema simile in cui lo stato git mostra file ignorati ... molto fastidioso. +1 –

+1

Ho ancora questo problema. Nessuno dei comandi sopra ha funzionato per me. In entrambi i casi git dice che non ha conoscenza dei file in questione, ma si mostrano ancora in stato git :( – Cfreak

0

Da man git-lsfiles:

-i, --ignored 
Show ignored files in the output. Note that this also reverses any exclude list present. 

Personalmente tendo a mantenere i file Doxygen nella mia struttura di origine, così ho semplicemente aggiunto questo al mio .gitignore (che si trova nella directory più in alto della mia fonte albero):

Spero che questo aiuti.

0

come questo

git --ignored myfolder 

e mostrerà lo stato solo per myfolder

8

Ho avuto questo problema venire così, probabilmente è perché hai aggiunto i tuoi directory ignorato/file di .gitignore dopo che sono stati contrassegnati come "da inseguire" da GIT in un flusso di commit iniziale.

quindi è necessario cancellare la cache di monitoraggio git in questo modo:

git rm --cached -r [folder/file name]

Una spiegazione più dettagliata può essere letto qui: http://www.frontendjunkie.com/2014/12/stop-git-from-tracking-changes-to.html

Il comando sopra anche rimosso i resti della cartella/file dall'origine GIT remota. Quindi i tuoi repository GIT diventano puliti.

-1

Questo funziona sicuramente,

git rm --cached -r [folder/file name]

0

Presumo che si desidera di non aggiungere directory tmp (Visual Studio Platform)

1- aggiungere righe sotto al file .gitignore locale

## ignore tmp 
/tmp/ 
./tmp/ 

3- backup ed eliminazione cartella tmp localmente. (Esegui il backup da qualche altra parte, ad es. Desktop?)

4- Commit passa a Locale da Sincronizza a remoto (ad esempio github).

Dopo questi passaggi, la directory tmp non verrà caricata di nuovo.

Problemi correlati