Esiste un comando ignore per git come c'è per svn?


Risposte:


136

Non esiste un git ignorecomando speciale .

Modifica un .gitignorefile situato nella posizione appropriata all'interno della copia di lavoro. Dovresti quindi aggiungere questo .gitignoree impegnarlo. Tutti coloro che clonano quel repository avranno questi file ignorati.

Si noti che solo i nomi dei file che iniziano con /saranno relativi alla directory in cui .gitignorerisiede. Tutto il resto corrisponderà ai file in qualunque sottodirectory.

È inoltre possibile modificare .git/info/excludeper ignorare file specifici solo in quella copia di lavoro. Il .git/info/excludefile non verrà eseguito il commit e quindi verrà applicato solo localmente in questa copia di lavoro.

È inoltre possibile impostare un file globale con motivi da ignorare git config --global core.excludesfile. Questo si applicherà localmente a tutte le copie funzionanti di git sullo stesso account utente.

Esegui git help gitignoree leggi il testo per i dettagli.


75
Non avere un semplice comando ignora sembra una tale svista da parte del team git.
jcollum,

4
@jcollum A prima vista lo fa, ma la semplicità di alias di un comando per aggiungerne di nuovi E la complessità di crearne uno e di lavorare su tutti i casi limite / gotcha / potenziali problemi di modifica di un file di testo ha anche senso lasciarlo al utente. Mi sento in conflitto perché sono entrambi d'accordo e in disaccordo con te.
abelito,

100

Un comando git ignore molto utile viene fornito con i fantastici tj / git-extra .

Ecco alcuni esempi di utilizzo:

Elenca tutti i pattern attualmente ignorati

git ignore

Aggiungi un motivo

git ignore "*.log"

Aggiungi uno dei modelli da gitignore.io

git ignore-io -a rails

git-extra fornisce molti altri comandi utili. Sicuramente vale la pena provarlo.


1
Quindi se uso git ignore "index.html" ignorerà questo file?
JohnAndrews,

Il comando -t è ancora applicabile? Quando lo
eseguo

50

Su Linux / Unix, è possibile aggiungere file al file .gitignore con il echocomando. Ad esempio, se si desidera ignorare tutte le .svncartelle, eseguirlo dalla radice del progetto:

echo .svn/ >> .gitignore

1
Ho scoperto questo tweet usando quella sintassi twitter.com/noodl_io/status/669904872704253953
JohnAndrews,

3
In Git Bash su Windows, avevo bisogno di aggiungere un /'\' precedente e finale (per creare una nuova riga), come echo /nbproject/project.properties\ >> .gitignoree echo /nbproject/project.xml\ >> .gitignore.
Ryan

15

Esistono due modi per ignorare i file:

  • .gitignorein qualsiasi cartella ignorerà i file come specificato nel file per quella cartella. L'uso dei caratteri jolly è possibile.
  • .git/info/excludecontiene il modello globale di ignore, simile al global-ignoresfile di configurazione in subversions.

6
Si noti che i pattern nel .gitignorefile che non contengono '/' sono abbinati in modo ricorsivo (cioè anche in tutte le sottodirectory della directory in cui si trova il .gitignorefile), contrariamente al caso delle svn:ignoreproprietà della directory in Subversion.
Jakub Narębski,

6

Spero non sia troppo tardi.

Se sei su Windows, puoi semplicemente fare quanto segue per creare un file .gitignore

echo name_of_the_file_you_want_to_ignore.extension > .gitignore

Per modificare .gitignore è possibile eseguire

notepad .gitignore

2
Non usarlo se hai già un file .gitignore, lo sovrascriverà! Per aggiungere il file da ignorare, utilizzare questo: echo ignore.ext >>
.gitignore

Hai ragione, è consigliabile utilizzare solo se il file .gitignore non esiste. Meglio usare "notepad .gitignore", se hai un file .gitignore lo aprirà e, in caso contrario, ne creerà uno e potrai quindi aggiungere tutti i file dal blocco note. 1 file / cartella per riga
Nesar

3

Crea un file chiamato .gitignore sulla radice del tuo repository. In questo file inserisci il percorso relativo di ciascun file che desideri ignorare in un'unica riga. È possibile utilizzare il *carattere jolly.


2

Utilizzando le risposte già fornite, è possibile eseguire il rollback del proprio git ignorecomando utilizzando un alias . O aggiungi questo al tuo file ~ / .gitconfig:

ignore = !sh -c 'echo $1 >> .gitignore' -

Oppure esegui questo comando dalla shell (* nix) di tua scelta:

git config --global alias.ignore '!sh -c "echo $1 >> .gitignore" -'

Puoi anche creare un git excludecomando sostituendo ignorecon excludee .gitignorecon .git/info/excludequanto sopra.

(Se non capisci già la differenza tra questi due file dopo aver letto le risposte qui, vedi questa domanda .)


1
La risposta qui espande correttamente $ 1: stackoverflow.com/a/21884533/1465227
Arcangelo33

2

per i nomi non presenti nella copia o nel repository di lavoro:

echo /globpattern >> .gitignore

o per un file esistente (riga di comando di tipo sh):

echo /$(ls -1 file) >> .gitignore   # I use tab completion to select the file to be ignored  
git rm -r --cached file             # if already checked in, deletes it on next commit

1

È utile definire un file .gitignore completo per il tuo progetto. La ricompensa è l'uso sicuro del comodo --allo -aflag per comandi come addecommit .

Inoltre, considera la definizione di un file ~ / .gitignore globale per modelli comunemente ignorati come *~ , che copre i file temporanei creati da Emacs.


1

Devi installare git-extra per questo. Puoi installarlo su Ubuntu usando apt-get,

$ sudo apt-get install git-extras

Quindi puoi usare il comando git ignore.

$ git ignore file_name

3
Su Mac, se hai installato Homebrew, puoi eseguirlo brew install git-extras.
Alex Glover,

0

Puoi anche usare gitignore.io di Joe Blau

O attraverso l'interfaccia web https://www.gitignore.io/

O installando lo strumento CLI, è molto facile e veloce, basta digitare quanto segue sul terminale:

Linux:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bashrc && source ~/.bashrc

OSX:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profile

E poi puoi semplicemente digitare gifollowd per tutti gli elementi piattaforma / ambiente per i quali hai bisogno dei criteri gitignore.

Esempio!
Diciamo che stai lavorando a un progetto nodo che include grunt e stai usando webstorm su Linux, quindi potresti voler digitare:
gi linux,webstorm,node,grunt > .gitignore(per creare un file nuovo di zecca)
o
gi linux,webstorm,node,grunt >> .gitignore (per aggiungere / aggiungere le nuove regole a un file esistente )

bam, sei a posto

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.