Risposte:
Il vantaggio di .gitignoreè che può essere verificato nel repository stesso, a differenza .git/info/exclude. Un altro vantaggio è che puoi avere più .gitignorefile, 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 Eclipseper lo sviluppo, potrebbe essere logico che lo sviluppatore aggiunga una .buildcartella .git/info/excludeperché 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
~/.gitignorenel tuo commento sopra. La mia comprensione è che le regole Ignora possono essere a 3 livelli: $PROJECT/.git/info/excludeper le regole Ignora specifiche (progetto, utente), $PROJECT/<any number of directories>/.gitignoreche è 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 excludeo 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 .gitignorefile 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?