I processen med at bruge Git kan vi godt lide, at filer som logs, midlertidige filer, kompilerede mellemliggende filer osv. ikke bliver sendt til kodearkivet, så vi skal sætte tilsvarende ignorer-regler til at ignorere commiten af disse filer.
Git ignorerer metoden med fil-commits
Der er tre måder at ignorere filer, du ikke ønsker at committe i Git.
Definér .gitignore-filen i dit Git-projekt
Dette styres ved at definere en .gitignore-fil i en mappe i projektet, hvor de tilsvarende ignorer-regler er defineretNuværende mappeGit-commit-adfærden for filen under .gitignore-filer kan indsendes til offentlige repositorier, hvilket betyder, at alle udviklere under projektet deler et defineret sæt ignorer-regler. I .gitingore-filen skal du angive en ignorer-regel på hver linje og følge den tilsvarende syntaks. For eksempel:
Angiv udelukkelsesfilerne i indstillingerne for Git-projektet
Dette er blot en midlertidig specifikation af projektets adfærd, som kræver, at du redigerer .git/info/exlyde-filen under det aktuelle projekt og derefter skriver den fil, som commit'en skal ignoreres. Bemærk, at rodmappen for de ignorerede filer, der er angivet på denne måde, er projektets rod.
En .gitignore-fil, der definerer Git-global
Ud over at kunne definere .gitignore-filer i dit projekt, kan du også opsætte en global git .gitignore-fil til at styre adfærden for alle Git-projekter. Denne tilgang deles ikke mellem forskellige projektudviklere og er en adfærd på Git-applikationsniveau oven på projektet.
Dette kræver også, at man opretter en tilsvarende .gitignore-fil, som kan placeres hvor som helst. Konfigurer derefter Git med følgende kommando:
Git ignorerer regler
For detaljerede ignoreringsregler, henvis til den officielle engelske dokumentation på adressen:Hyperlink-login er synlig.
Git ignorerer regelprioritet
I .gitingore-filen angives en ignorer-regel for hver linje, og Git tjekker for flere kilder, når reglerne ignoreres, med følgende prioritet (fra højeste til laveste):
- Læs de tilgængelige ignorer-regler fra kommandolinjen
- Reglerne defineret af den aktuelle mappe
- Reglerne, der defineres af forældrekataloget, er rekursive
- $GIT_DIR/info/exlyder fil
- core.excludesfile
Git ignorerer regelmatchningssyntaks
I .gitignore-filen er syntaksen for ignorér-reglen for hver linje som følger:
- Mellemrum, der ikke matcher vilkårlige filer, kan bruges som separatorer og kan undgås med bagslash
- # Filidentifikationskommentaren i starten kan undgås ved hjælp af en backslash
- ! Skemaidentifikationen i starten er negativ, og filen vil blive inkluderet igen; hvis filens overordnede mappe er udelukket, brug ! vil ikke blive inkluderet igen. Flugt kan foretages ved hjælp af et baglæns slash
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目跟目录
- Hvis et mønster ikke indeholder en skråstreg, matcher det indholdet i forhold til den aktuelle .gitignore-filsti, og hvis mønsteret ikke er i .gitignore-filen, relativt til projektets rod
- ** Matchende flerniveaukataloger kan bruges i begyndelsen, midten og slutningen
- ? Universel matching af individuelle tegn
- [ ] Universel matchliste for individuelle karakterer
Almindelige matchende eksempler:
- bin/: ignorerer bin-mappen under den aktuelle sti, alt under den mappe ignoreres, ikke bin-filen
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- debug/*.obj: Ignorer debug/io.obj, ignorer ikke debug/common/io.obj og tools/debug/io.obj
- **/foo: ignorer /foo, a/foo, a/b/foo osv
- a/**/b: ignorer a/b, a/x/b, a/x/y/b osv
- !/bin/run.sh: Ignorer ikke run.sh filer i bin-mappen
- *.log: Ignorer alle .log filer
- config.php: 忽略当前路径的 config.php 文件
.gitignore-reglen træder ikke i kraft
.gitignore kan kun ignorere filer, der ikke oprindeligt er sporet, og ændring af .gitignore er ineffektiv, hvis nogle filer allerede er inkluderet i versionering.
Løsningen er at slette den lokale cache (ændre den til untracked state) før committ:
(Slut)
|