Risposte:
Il vantaggio di .gitignore
è che può essere verificato nel repository stesso, a differenza .git/info/exclude
. Un altro vantaggio è che puoi avere più .gitignore
file, uno all'interno di ogni directory / sottodirectory per le regole di ignoramento specifiche della directory, a differenza .git/info/exclude
.
Quindi, .gitignore
è disponibile in tutti i cloni del repository. Pertanto, in grandi squadre tutte le persone stanno ignorando lo stesso tipo di file di esempio *.db
, *.log
. E puoi avere regole di ignorare più specifiche a causa di più .gitignore
.
.git/info/exclude
è disponibile solo per singoli cloni, quindi ciò che una persona ignora nel suo clone non è disponibile nel clone di un'altra persona. Ad esempio, se qualcuno lo utilizza Eclipse
per lo sviluppo, potrebbe essere logico che lo sviluppatore aggiunga una .build
cartella .git/info/exclude
perché altri sviluppatori potrebbero non utilizzare Eclipse.
In generale, i file / ignorare le regole che devono essere universalmente ignorati dovrebbero entrare .gitignore
, altrimenti i file che si desidera ignorare solo sul clone locale dovrebbero andare.git/info/exclude
~/.gitignore
nel tuo commento sopra. La mia comprensione è che le regole Ignora possono essere a 3 livelli: $PROJECT/.git/info/exclude
per le regole Ignora specifiche (progetto, utente), $PROJECT/<any number of directories>/.gitignore
che è per le regole Ignora specifiche progetto su qualsiasi utente ovunque (quando archiviato), ~/.gitignore
per le regole Ignora specifiche utente per qualsiasi progetto per quell'utente su quella macchina. In base all'obiettivo, scegli il luogo in cui inserire una voce.
git rm --cached <path-name>
lo eliminerà dal repository, ma lo manterrà localmente. git update-index --skip-worktree <path-name>
ignorerà le modifiche al file, ma lo manterrà nel repository. Per curiosità: perché vuoi escludere il file sln? È una parte importante di una soluzione .Net, giusto?
Googled: 3 modi per escludere i file
.gitignore
si applica a tutti i cloni di questo repository (con versione, tutti lo avranno),.git/info/exclude
si applica solo alla tua copia locale di questo repository (locale, non condiviso con altri),~/.gitignore
si applica a tutti i repository sul tuo computer (locale, non condiviso con altri).3.
in realtà richiede di impostare una configurazione sul tuo computer:
git config --global core.excludesfile '~/.gitignore'
.git/info/excludes
, quando dovrebbe essere .git/info/exclude
, come confermato dalla documentazione a cui si collega.
Giusto per offrire la nostra esperienza (nel mondo reale): abbiamo iniziato a utilizzare .git / info / exclude quando dovevamo personalizzare alcuni file di configurazione su ciascun ambiente di sviluppo, ma volevamo comunque che la fonte fosse mantenuta nel repository e disponibile per altri sviluppatori.
In questo modo, i file locali, una volta clonati e modificati, possono essere esclusi dai commit senza influire sui file originali nel repository ma senza essere necessariamente ignorati nel repository.
Uso .gitignore
per ignorare le regole specifiche del progetto . Utilizzare exclude
o un file globale ignore per ignorare le regole specifiche del proprio ambiente .
Ad esempio, i miei file globali di ignorare ignorano i file temporanei generati da qualsiasi editor che sto usando, quella regola è specifica per il mio ambiente e potrebbe essere diversa per alcuni altri sviluppatori nello stesso progetto (forse usano un editor diverso). OTOH, i miei .gitignore
file di progetto ignorano cose come le chiavi API e creano artefatti: quelli sono per il progetto e dovrebbero essere gli stessi per tutti i membri del progetto.
Questo aiuta?