File .gitignore, dove dovrei metterlo nel mio progetto xcode?


Risposte:


124

Puoi averne uno .gitignorein ogni singola directory del tuo progetto.

Tuttavia, la procedura migliore è avere un singolo .gitignorefile nella directory principale del progetto e inserire tutti i file che si desidera ignorare, in questo modo:

ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn

Una volta creato il .gitignorefile, i file ignorati che hanno modifiche o sono nuovi nel repository non verranno visualizzati come in attesa di commit.

Puoi anche avere un file ignore git locale globale, che gestirà tutti i tuoi repository git.

git config --global core.excludesfile ~/.gitignore_global

Questa alternativa è particolarmente interessante per i file ignorati che non sono correlati al progetto, come i file relativi all'IDE e così via.


1
Questo .gitignore dovrebbe essere aggiunto all'origine o nella tua copia master / local-repo?
Adil

1
Localmente (ovviamente lo spingerai all'origine ad un certo punto).
Daniel Ribeiro

21

Esistono approcci per ignorare i file in git:

  1. Ignora git globale: - In questo approccio le tue regole personalizzate verranno applicate a ogni directory git nella tua macchina. Di solito questo file potrebbe essere creato sotto ~/.gitignore_globalpath. Questo approccio è utile se si desidera escludere alcuni tipi di file generati dal sistema operativo o da qualsiasi altro strumento di registrazione, incasso e così via.
  2. Ignora git per repository: - In questo approccio le tue regole personalizzate verranno applicate alla directory git specifica nella tua macchina. Le regole locali per repository possono essere aggiunte al .git/info/excludefile nel tuo repository. Le regole specificate in questo file non verranno salvate, il che significa che non verranno condivise con altri. Generalmente questo approccio è utile per prevenire il commit di file generati localmente. Ad esempio, per i file creati dal tuo editor.
  3. Per percorso git ignore: - In questo caso le tue regole personalizzate verranno applicate a specifici sottopercorsi dei repository git. Puoi creare .gitignorein qualsiasi sottopercorso del tuo repository specifico. Questo approccio di solito viene utilizzato per ignorare alcuni tipi di file solo in una cartella specifica di un repository specifico. Anche se questi file possono essere aggiunti al controllo della versione da altri percorsi e altri repository.

Quindi, il mio suggerimento è, se vuoi ignorare il tuo file specifico ( UserInterfaceState.xcuserstate) in tutti i tuoi repository, l'approccio migliore è usare l'approccio globale git ignore. Tuttavia, se il tuo file viene generato solo in un repository specifico, puoi utilizzare l'approccio git ignore per repository.

Per ulteriori informazioni puoi leggere questo fantastico post sul blog. E lì per ogni lingua specifica git ignore regole possono essere trovate qui . E puoi generare automaticamente git generale ignorando le regole per una lingua, uno strumento o un sistema operativo specifici questo sito web .


20

Dovresti mettere il file .gitignore nella directory principale del progetto.


12

dove devo mettere il .gitignorefile ?, è all'interno della cartella .git?

Non c'è .gitignoreall'interno di una .gitcartella.
È comunque un .git/info/excludefile, che ti permette di escludere un file localmente, generalmente quando vuoi escludere un file solo per questo specifico repo (con un alias come questo ):

git config alias.exclude "!sh -c 'echo \"$1\" >> .git/info/exclude' -"
git exclude UserInterfaceState.xcuserstate

Se è necessario escludere questo file per tutti i progetti simili, come ha menzionato Elnur Abdurrakhimov nella sua risposta , escluderlo a livello globale.

echo UserInterfaceState.xcuserstate >> ~/.gitignore

Ma, come menzionato in " Dobbiamo archiviare * .xcuserstate? ", Se si tratta di un tipo di file che dovrebbe essere ignorato da qualsiasi utente di quel repository, in realtà verrei un .gitignore nella parte superiore del repository, con un contenuto simile a:

*.xcuserstate 

In questo modo, qualsiasi utente di quel repository non si renderà nemmeno conto che questo file esiste e viene generato (qualunque sia il suo nome): non verrà visualizzato in un git status ever.

Oppure puoi ignorarexcuserdata/ completamente (sia in un globale .gitignoreche in uno con versione, come il file generico GitHubObjective-C.gitignore .


Sei la leggenda di GIT! sempre le tue risposte sono le più utili.
Jad Chahine

@JadChahine Grazie. Felice di aiutare (almeno, scrivere quelle risposte mi aiuta a imparare git)
VonC

@tymac Non proprio;) Visito regolarmente ( meta.stackexchange.com/questions/122976/… )
VonC

9

Si dovrebbe non mettere i file strumento-specifiche in un progetto di.gitignore di file - a meno che non è necessario che strumento per essere utilizzato da ogni sviluppatore del progetto.

Invece, crea il tuo .gitignorefile globale personale nella tua home directory e attivalo:

git config --global core.excludesfile ~/.gitignore

Ora puoi inserire nel tuo .gitignorefile tutti i file generati dai tuoi strumenti di sviluppo .


6

in genere, è consigliabile includere il .gitignorefile nella directory principale del progetto

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.