Nel processo di utilizzo di Git, ci piace che file come log, file temporanei, file intermedi compilati, ecc. non vengano inviati al repository di codice, quindi dobbiamo impostare le corrispondenti regole di ignorare per ignorare il commit di questi file.
Git ignora il metodo dei commit dei file
Ci sono tre modi per ignorare i file che non vuoi mettere in commit in Git.
Definisci il file .gitignore nel tuo progetto Git
Questo viene gestito definendo un file .gitignore in una cartella del progetto, dove sono definite le corrispondenti regole di ignoranzaCartella attualeIl comportamento del commit Git del file sotto il .gitignore possono essere inviati a repository pubblici, il che significa che tutti gli sviluppatori del progetto condividono un insieme definito di regole ignor. Nel file .gitingore, specifica una regola di ignorare su ogni riga, seguendo la sintassi corrispondente. Per esempio:
Specifica i file di esclusione nelle impostazioni del progetto Git
Questa è solo una specifica temporanea del comportamento del progetto, che richiede di modificare il file .git/info/exclude sotto il progetto corrente, e poi scrivere il file su cui il commit deve essere ignorato. Nota che la directory radice dei file ignorati specificati in questo modo è la root del progetto.
Un file .gitignore che definisce il Git globale
Oltre a poter definire file .gitignore nel tuo progetto, puoi anche configurare un file git .gitignore globale per gestire il comportamento di tutti i progetti Git. Questo approccio non è condiviso tra diversi sviluppatori di progetto ed è un comportamento a livello di applicazione Git che si aggiunge al progetto.
Questo richiede anche la creazione di un file .gitignore corrispondente, che può essere posizionato ovunque. Poi configura Git con il seguente comando:
Git ignora le regole
Per regole dettagliate di ignoranza, si prega di consultare la documentazione ufficiale in inglese all'indirizzo:Il login del link ipertestuale è visibile.
Git ignora la priorità delle regole
Nel file .gitingore, specifica una regola di ignora per ogni riga, e Git controlla la presenza di più fonti ignorando regole, con la seguente priorità (dalla più alta alla più bassa):
- Leggi le regole di ignoramento disponibili dalla riga di comando
- Le regole definite dalla directory corrente
- Le regole definite dalla directory genitore sono ricorsive
- $GIT_DIR/info/exclude file
- core.excludesfile
Git ignora la sintassi di corrispondenza delle regole
Nel file .gitignore, la sintassi della regola di ignorare per ogni riga è la seguente:
- Gli spazi che non corrispondono a file arbitrari possono essere usati come separatori e possono essere scappati con le barraelle inverse
- # Il commento sull'identificazione del file all'inizio può essere evitato usando una barra diagonale
- ! L'identificazione dello schema all'inizio è negativa, e il file verrà incluso nuovamente; se la cartella genitore del file viene esclusa, usa ! non sarà più incluso. La fuga può essere fatta usando una barra inversa
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目跟目录
- Se un pattern non contiene una barra diagonale, corrisponde al contenuto rispetto al percorso corrente del file .gitignore, e se il pattern non è nel file .gitignore, rispetto alla radice del progetto
- ** I cataloghi multilivello corrispondenti possono essere usati all'inizio, al centro e alla fine
- ? Abbinamento universale di singoli caratteri
- [ ] Elenco universale dei singoli personaggi
Esempi comuni di abbinamento:
- bin/: ignora la cartella bin sotto il percorso corrente, tutto ciò che si trova sotto quella cartella viene ignorato, non il file bin
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- debug/*.obj: Ignora debug/io.obj, non ignorare debug/common/io.obj e tools/debug/io.obj
- **/foo: ignora /foo, a/foo, a/b/foo, ecc
- a/**/b: ignorare a/b, a/x/b, a/x/y/b, ecc
- !/bin/run.sh: Non ignorare run.sh file nella cartella bin
- *.log: Ignora tutti i file .log
- config.php: 忽略当前路径的 config.php 文件
.gitignore non entra in vigore
.gitignore può ignorare solo i file che non sono tracciati originariamente, e modificare .gitignore è inefficace se alcuni file sono già stati inclusi nel versioning.
La soluzione alternativa è eliminare la cache locale (cambiarla in stato non tracciato) prima di effettuare il commit:
(Fine)
|