Come ignorare ricorsivamente tutte le directory / i file nascosti in un repository git?


128

Vorrei che Git ignorasse tutti i file e le directory nascosti. vale a dire

  • .aptitude
  • .ssh/
  • .bash_rc
  • config/.hidden

Esiste una semplice regola per coprirlo senza aggiungere specificamente ciascuna voce?

Risposte:


165

Basta aggiungere un modello a .gitignore

.*
!/.gitignore

Modifica: aggiunto il .gitignorefile stesso (è importante se non è stato ancora eseguito il commit).


3
Potresti voler aggiungere forzatamente alcuni file che sono necessari dopo questo. per esempio. il file .htaccess. Naturalmente in base alle tue esigenze.
dakdad,

3
@dakdad: grazie per il suggerimento. Migliorata la risposta. Se Poe ha alcuni file speciali come .htaccessgià registrati, continuano a essere seguiti. gitignoreè importante solo per i nuovi file.
Daniel Böhmer,

@ DanielBöhmer Forse questo sta scendendo dall'argomento, ma c'è un motivo per non ignorare solo /.gitignoree non tutti i .gitignorefile indipendentemente da dove si trova? Cioè perché non elencare !.gitignore(nessuna barra)?
Jason Young,

1
@JasonYoung Domanda interessante. Bene, questo modello non ignora solo il file stesso. Trovo questo più conciso senza effetti collaterali per un esempio da copiare e incollare. Naturalmente, probabilmente puoi semplicemente ignorare qualsiasi .gitignorefile nel tuo .gitignorefile di livello superiore . Ma questa scelta dipende da te.
Daniel Böhmer,

64

.gitignore effettuerà solo i file che non sono già stati "aggiunti".

Per fare in modo che le nuove voci .gitignore influiscano su tutti i file

  1. Apporta le modifiche a .gitignore
  2. git commit -a -m "Pre .gitignore changes"
  3. git rm -r --cached .
  4. git add .
  5. git commit -a -m "Post .gitignore changes"
  6. git status dovrebbe generare "niente da impegnare (directory di lavoro pulita)" `

La riga "non è stata 'aggiunta' già" è la chiave qui, perché se hai già eseguito il commit di un determinato file, l'ignore non funzionerà più su di lui, devi eliminarlo dal repository e la prossima volta che lo creerai .gitignore lo ignorerà.
Georgi Peev,

21

In .git/info/exclude, aggiungi questa riga:

.*

Ciò renderà ignorare tutti i file nascosti / punti ricorsivamente il valore predefinito per ogni repository sulla macchina. In .gitignorequesto modo non è necessario un file separato per ogni repository.

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.