I prosessen med å bruke Git liker vi at filer som logger, midlertidige filer, kompilerte mellomliggende filer osv. ikke skal sendes inn i kodearkivet, så vi må sette tilsvarende ignorer-regler for å ignorere commit av disse filene.
Git ignorerer metoden for filcommits
Det finnes tre måter å ignorere filer du ikke vil committe i Git på.
Definer .gitignore-filen i Git-prosjektet ditt
Dette styres ved å definere en .gitignore-fil i en mappe i prosjektet, hvor de tilsvarende ignorer-reglene er definertNåværende mappeGit-commit-oppførselen til filen under .gitignore-filer kan sendes til offentlige arkiver, noe som betyr at alle utviklere under prosjektet deler et definert sett med ignorer-regler. I .gitingore-filen, spesifiser en ignorer-regel på hver linje, etter tilsvarende syntaks. For eksempel:
Spesifiser eksklusivfilene i innstillingene til Git-prosjektet
Dette er bare en midlertidig spesifikasjon av prosjektets oppførsel, som krever redigering av .git/info/exklusiv-filen under det nåværende prosjektet, og deretter skrive filen som commiten må ignoreres. Merk at rotmappen til de ignorerte filene som er spesifisert på denne måten, er prosjektroten.
En .gitignore-fil som definerer Git-global
I tillegg til å kunne definere .gitignore-filer i prosjektet ditt, kan du også sette opp en global git .gitignore-fil for å håndtere oppførselen til alle Git-prosjekter. Denne tilnærmingen deles ikke mellom ulike prosjektutviklere, og er en atferd på Git-applikasjonsnivå i tillegg til prosjektet.
Dette krever også at man lager en tilsvarende .gitignore-fil, som kan plasseres hvor som helst. Konfigurer deretter Git med følgende kommando:
Git ignorerer regler
For detaljerte regler for ignorering, vennligst se den offisielle engelske dokumentasjonen på adressen:Innloggingen med hyperkoblingen er synlig.
Git ignorerer regelprioritet
I .gitingore-filen, spesifiser en ignorer-regel for hver linje, og Git sjekker for flere kilder når reglene ignoreres, med følgende prioritet (fra høyest til lavest):
- Les de tilgjengelige ignorer-reglene fra kommandolinjen
- Reglene definert av den nåværende katalogen
- Reglene definert av foreldrekatalogen er rekursive
- $GIT_DIR/info/exklusiv fil
- core.excludesfile
Git ignorerer regelgjenkjenningssyntaks
I .gitignore-filen er syntaksen for ignorer-regelen for hver linje som følger:
- Mellomrom som ikke matcher vilkårlige filer kan brukes som separatorer og kan unnslippes med backslashes
- # Filidentifikasjonskommentaren i starten kan unngås ved hjelp av en backslash
- ! Skjemaidentifikasjonen i starten er negativ, og filen vil bli inkludert igjen; hvis filens overordnede katalog er utelatt, bruk ! vil ikke bli inkludert igjen. Flukt kan gjøres ved hjelp av en backslash
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目跟目录
- Hvis et mønster ikke inneholder en skråstrek, matcher det innholdet i forhold til den nåværende .gitignore-filstien, og hvis mønsteret ikke er i .gitignore-filen, relativt til prosjektroten
- ** Matchende flernivåkataloger kan brukes i begynnelsen, midten og slutten
- ? Universell matching av individuelle tegn
- [ ] Universell kampliste over individuelle karakterer
Vanlige eksempler på matching:
- bin/: ignorerer bin-mappen under gjeldende sti, alt under den mappen ignoreres, ikke bin-filen
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- debug/*.obj: Ignorer debug/io.obj, ikke ignorer 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: Ikke ignorer run.sh filene i bin-katalogen
- *.log: Ignorer alle .log filer
- config.php: 忽略当前路径的 config.php 文件
.gitignore-regelen trer ikke i kraft
.gitignore kan bare ignorere filer som ikke er sporet opprinnelig, og å endre .gitignore er ineffektivt hvis noen filer allerede er inkludert i versjonering.
Løsningen er å slette den lokale cachen (endre den til usporet tilstand) før du committer:
(Slutt)
|