Bei der Nutzung von Git möchten wir, dass Dateien wie Logs, temporäre Dateien, kompilierte Zwischendateien usw. nicht im Code-Repository eingereicht werden, daher müssen wir entsprechende Ignorier-Regeln einstellen, um das Commit dieser Dateien zu ignorieren.
Git ignoriert die Methode der Dateicommits
Es gibt drei Möglichkeiten, Dateien zu ignorieren, die du nicht in Git committen möchtest.
Definiere die .gitignore-Datei in deinem Git-Projekt
Dies wird verwaltet, indem eine .gitignore-Datei in einem Ordner im Projekt definiert wird, in dem die entsprechenden Ignorieren-Regeln definiert sind.Aktueller OrdnerDas Verhalten der Git-Commit der Datei unter dem .gitignore-Dateien können in öffentliche Repositorien eingereicht werden, was bedeutet, dass alle Entwickler im Projekt einen definierten Satz von Ignorier-Regeln teilen. In der .gitingore-Datei gibt man auf jeder Zeile eine Ignorierungsregel an, die der entsprechenden Syntax folgt. Zum Beispiel:
Gib in den Einstellungen des Git-Projekts die Ausschlussdateien an
Dies ist lediglich eine temporäre Spezifikation des Projektverhaltens, die erfordert, die .git/info/exlyde-Datei unter dem aktuellen Projekt zu bearbeiten und dann die Datei zu schreiben, zu der der Commit ignoriert werden muss. Beachten Sie, dass das Root-Verzeichnis der auf diese Weise angegebenen ignorierten Dateien die Projektwurzel ist.
Eine .gitignore-Datei, die das Git-Globale definiert
Neben der Möglichkeit, .gitignore-Dateien in deinem Projekt zu definieren, kannst du auch eine globale git-.gitignore-Datei einrichten, um das Verhalten aller Git-Projekte zu verwalten. Dieser Ansatz wird nicht von verschiedenen Projektentwicklern geteilt und ist ein Verhalten auf Git-Anwendungsebene zusätzlich zum Projekt.
Dies erfordert außerdem die Erstellung einer entsprechenden .gitignore-Datei, die überall platziert werden kann. Dann konfigurieren Sie Git mit folgendem Befehl:
Git ignoriert Regeln
Für detaillierte Ignorationsregeln siehe bitte die offizielle englische Dokumentation an der Adresse:Der Hyperlink-Login ist sichtbar.
Git ignoriert Regelpriorität
In der .gitingore-Datei gib für jede Zeile eine Ignorier-Regel an, und Git prüft beim Ignorieren von Regeln mehrere Quellen mit folgender Priorität (von höchstem nach niedrigsten):
- Lies die verfügbaren Ignorieren-Regeln aus der Befehlszeile
- Die vom aktuellen Verzeichnis definierten Regeln
- Die vom übergeordneten Verzeichnis definierten Regeln sind rekursiv
- $GIT_DIR/info/exclude Datei
- core.excludesfile
Git ignoriert die Syntax der Regelabstimmung
In der .gitignore-Datei lautet die Syntax der Ignorieren-Regel für jede Zeile wie folgt:
- Spaces, die nicht mit beliebigen Dateien übereinstimmen, können als Separatoren verwendet und können mit Backslashes escaped werden
- # Der Kommentar zur Dateiidentifikation am Anfang kann durch einen Backslash umgangen werden
- ! Die Schema-Identifikation am Anfang ist negativ, und die Datei wird erneut eingeschlossen; wenn das übergeordnete Verzeichnis der Datei ausgeschlossen ist, verwenden Sie ! wird nicht mehr aufgenommen. Flucht kann mit einem Rückschlag ausgeführt werden
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目跟目录
- Wenn ein Muster keinen Schrägstrich enthält, stimmt es dem Inhalt relativ zum aktuellen .gitignore-Dateipfad überein, und wenn das Muster nicht in der .gitignore-Datei ist, relativ zur Projektwurzel
- ** Matching multilevel-Kataloge können am Anfang, in der Mitte und am Ende verwendet werden
- ? Universelle Übereinstimmung einzelner Zeichen
- [ ] Universelle Spielliste einzelner Charaktere
Häufige Matching-Beispiele:
- bin/: ignoriert den BIN-Ordner unter dem aktuellen Pfad, alles unter diesem Ordner wird ignoriert, nicht die BIN-Datei
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- Debug/*.obj: Debug/io.obj ignorieren, Debug/Common/io.obj und Tools/Debug/io.obj
- **/foo: /foo, a/foo, a/b/foo usw. ignorieren
- a/**/b: a/b, a/x/b, a/x/y/b usw. ignorieren
- !/bin/run.sh: Ignorieren Sie run.sh Dateien im bin-Verzeichnis nicht
- *.log: Ignoriere alle .log Dateien
- config.php: 忽略当前路径的 config.php 文件
.gitignore-Regel tritt nicht in Kraft
.gitignore kann nur Dateien ignorieren, die ursprünglich nicht verfolgt wurden, und die Änderung von .gitignore ist wirkungslos, wenn einige Dateien bereits in die Versionierung integriert wurden.
Der Workaround besteht darin, den lokalen Cache zu löschen (in den untracked-Status zu ändern), bevor man committiert:
(Ende)
|