În procesul de utilizare a Git, ne place ca fișiere precum loguri, fișiere temporare, fișiere intermediare compilate etc. să nu fie trimise în depozitul de cod, așa că trebuie să setăm reguli corespunzătoare de ignorare pentru a ignora commit-ul acestor fișiere.
Git ignoră metoda commit-urilor fișierelor
Există trei moduri de a ignora fișierele pe care nu vrei să le faci commit în Git.
Definește fișierul .gitignore în proiectul tău Git
Acest lucru se gestionează prin definirea unui fișier .gitignore într-un folder din proiect, unde sunt definite regulile corespunzătoare de ignorareFolderul curentComportamentul de commit Git al fișierului sub .gitignore pot fi trimise către depozite publice, ceea ce înseamnă că toți dezvoltatorii din proiect împart un set definit de reguli ignore. În fișierul .gitingore, specifică o regulă ignorare pe fiecare linie, urmând sintaxa corespunzătoare. De exemplu:
Specifică fișierele de excludere în setările proiectului Git
Aceasta este doar o specificație temporară a comportamentului proiectului, care necesită editarea fișierului .git/info/exclude sub proiectul curent și apoi scrierea fișierului la care trebuie ignorată commit-ul. Rețineți că directorul rădăcină al fișierelor ignorate specificate în acest mod este rădăcina proiectului.
Un fișier .gitignore care definește Git global
Pe lângă faptul că poți defini fișiere .gitignore în proiectul tău, poți configura și un fișier global git .gitignore pentru a gestiona comportamentul tuturor proiectelor Git. Această abordare nu este împărtășită între diferiți dezvoltatori de proiect și este un comportament la nivelul aplicației Git, care se suprapune proiectului.
Aceasta necesită și crearea unui fișier .gitignore corespunzător, care poate fi plasat oriunde. Apoi configurează Git cu următoarea comandă:
Git ignoră regulile
Pentru reguli detaliate de ignorare, vă rugăm să consultați documentația oficială în limba engleză de la adresă:Autentificarea cu hyperlink este vizibilă.
Git ignoră prioritatea regulilor
În fișierul .gitingore, specifică o regulă ignore pentru fiecare linie, iar Git verifică mai multe surse când ignoră regulile, cu următoarea prioritate (de la cea mai mare la cea mai mică):
- Citește regulile de ignorare disponibile din linia de comandă
- Regulile definite de directorul curent
- Regulile definite de directorul părinte sunt recursive
- $GIT_DIR/info/exclude fișier
- core.excludesfile
Git ignoră sintaxa potrivirii regulilor
În fișierul .gitignore, sintaxa regulii ignor pentru fiecare linie este următoarea:
- Spațiile care nu se potrivesc cu fișiere arbitrare pot fi folosite ca separatori și pot fi scăpate cu obliții oblice inverse
- # Comentariul de identificare a fișierului de la început poate fi evitat folosind o obliție oblică inversă
- ! Identificarea schemei de la început este negativă, iar fișierul va fi inclus din nou, dacă directorul părinte al fișierului este exclus, folosește ! nu va mai fi inclusă. Evadarea se poate face folosind o bară oblică inversă
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目跟目录
- Dacă un model nu conține o bară oblică, acesta corespunde conținutului în raport cu calea curentă a fișierului .gitignore, iar dacă modelul nu este în fișierul .gitignore, relativ la rădăcina proiectului
- ** Cataloagele multi-nivel potrivite pot fi folosite la început, la mijloc și la final
- ? Potrivirea universală a caracterelor individuale
- [ ] Lista universală de potriviri a personajelor individuale
Exemple comune de potrivire:
- bin/: ignoră folderul bin din calea curentă, tot ce este sub acel folder este ignorat, nu fișierul bin
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- debug/*.obj: Ignoră debug/io.obj, nu ignora debug/common/io.obj și tools/debug/io.obj
- **/foo: ignoră /foo, a/foo, a/b/foo, etc
- a/**/b: ignor a/b, a/x/b, a/x/y/b, etc
- !/bin/run.sh: Nu ignora fișierele run.sh din directorul bin
- *.log: Ignoră toate fișierele .log
- config.php: 忽略当前路径的 config.php 文件
Regula .gitignore nu intră în vigoare
.gitignore poate ignora doar fișierele care nu au fost urmărite inițial, iar modificarea .gitignore este ineficientă dacă unele fișiere au fost deja incluse în versionare.
Soluția este să ștergi cache-ul local (îl schimbi în starea neurmărită) înainte de a face commit-ul:
(Sfârșit)
|