Dateiänderungen mit Git ignorieren
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
Visual Studio 2022 | Visual Studio 2019 | Visual Studio 2017 | Visual Studio 2015
Nicht jede Datei in Ihrem Projekt sollte von Git nachverfolgt werden. Temporäre Dateien aus Ihrer Entwicklungsumgebung, Testausgaben und Protokolle sind alle Beispiele für Dateien, die wahrscheinlich nicht nachverfolgt werden müssen. Sie können verschiedene Mechanismen verwenden, um Git wissen zu lassen, welche Dateien in Ihrem Projekt nicht nachverfolgt werden sollten, und um sicherzustellen, dass Git keine Änderungen an diesen Dateien meldet. Für Dateien, die von Git nicht nachverfolgt werden, können Sie eine .gitignore
oder exclude
eine Datei verwenden. Für Dateien, die von Git nachverfolgt werden, können Sie Git mitteilen, sie zu beenden und Änderungen zu ignorieren.
In diesem Artikel wird Folgendes behandelt:
- Ignorieren von Änderungen an nicht nachverfolgten Dateien mithilfe einer
.gitignore
Datei - Ignorieren von Änderungen an nicht nachverfolgten Dateien mithilfe einer
exclude
Datei - Beenden der Nachverfolgung einer Datei und Ignorieren von Änderungen mithilfe von Änderungen
git update-index
- Beenden der Nachverfolgung einer Datei und Ignorieren von Änderungen mithilfe von Änderungen
git rm
Verwenden einer gitignore-Datei
Sie können Git mitteilen, dass bestimmte Dateien in Ihrem Projekt nicht nachverfolgt werden, indem Sie eine .gitignore
Datei hinzufügen und konfigurieren. Einträge in einer .gitignore
Datei gelten nur für nicht nachverfolgte Dateien und verhindern nicht, dass Git Änderungen an nachverfolgten Dateien meldet. Nachverfolgte Dateien sind Dateien, die festgelegt wurden und in der letzten Git-Momentaufnahme vorhanden sind.
Jede Zeile in einer .gitignore
Datei gibt ein Dateisuchemuster relativ zum .gitignore
Dateipfad an. Die .gitignore
Syntax ist flexibel und unterstützt die Verwendung von Wildcards, um einzelne oder mehrere Dateien nach Name, Erweiterung und Pfad anzugeben. Git entspricht .gitignore
Suchmustern mit den Dateien in Ihrem Projekt, um zu bestimmen, welche Dateien ignoriert werden sollen.
Normalerweise fügen Sie einfach eine .gitignore
Datei zum Stammordner Ihres Projekts hinzu. Sie können jedoch einer beliebigen Projektordnerdatei eine .gitignore
Datei hinzufügen, um Git darüber zu informieren, welche Dateien in diesem Ordner und seinen Unterordnern in jeder geschachtelten Tiefe ignoriert werden sollen. Für mehrere .gitignore
Dateien haben die von einer .gitignore
Datei in einem Ordner angegebenen Dateisuchemuster Vorrang vor den Mustern, die von .gitignore
einer Datei innerhalb eines übergeordneten Ordners angegeben sind.
Sie können eine .gitignore
Datei manuell erstellen und Dateimustereinträge hinzufügen oder Zeit sparen, indem Sie eine .gitignore
Vorlage für Ihre Entwicklungsumgebung aus dem GitHub-Repo gitignore
herunterladen. Eine der Vorteile der Verwendung einer .gitignore
Datei besteht darin, dass Sie Änderungen übernehmen und sie für andere freigeben können.
Visual Studio Version 2019, Version 16.8 und höher, bietet eine Git-Versionssteuerungsumgebung, während sie die Git-Benutzeroberfläche des Team Explorers beibehalten. Um Team-Explorer zu verwenden, deaktivieren Sie ToolsOptionsPreview>>FeaturesNew>Git-Benutzeroberfläche aus der Menüleiste. Sie können Git-Features von beiden Schnittstellen austauschbar verwenden. Nachfolgend stellen wir einen querseitigen Vergleich zum Erstellen und Hinzufügen von Einträgen zu einer .gitignore
Datei bereit.
Hinweis
Visual Studio erstellt automatisch eine Datei für die Visual Studio Entwicklungsumgebung, wenn Sie ein .gitignore
neues Git-Repo erstellen.
Visual Studio Git
Klicken Sie im Fenster "Git Änderungen " mit der rechten Maustaste auf alle geänderten Dateien, die Git ignorieren möchten, und wählen Sie dieses lokale Element ignorieren oder diese Erweiterung ignorieren. Diese Menüoptionen sind für nachverfolgte Dateien nicht vorhanden.
Visual Studio Team Explorer
Klicken Sie in der Ansicht "Änderungen " des Team-Explorers mit der rechten Maustaste auf alle geänderten Dateien, die Git ignorieren möchten, und wählen Sie dieses lokale Element ignorieren oder diese Erweiterung ignorieren. Diese Menüoptionen sind für nachverfolgte Dateien nicht vorhanden.
Die Option "Lokales Element ignorieren " fügt der Datei einen neuen Eintrag hinzu, und entfernt die ausgewählte Datei aus der .gitignore
Liste der geänderten Dateien.
Die Option "Erweiterung ignorieren " fügt der Datei einen neuen Eintrag .gitignore
hinzu, und entfernt alle Dateien mit derselben Erweiterung wie die ausgewählte Datei aus der Liste der geänderten Dateien.
Jede Option erstellt eine .gitignore
Datei, wenn sie nicht bereits im Stammordner Ihres Repo vorhanden ist, und fügt einen Eintrag hinzu.
Bearbeiten einer Gitignore-Datei
Jeder Eintrag in der .gitignore
Datei ist entweder: ein Dateisuchemuster, das angibt, welche Dateien ignoriert werden sollen, ein Kommentar, der mit einer leeren #
Zeile beginnt (für die Lesbarkeit). Die .gitignore
Syntax ist flexibel und unterstützt die Verwendung von Wildcards, um einzelne oder mehrere Dateien nach Name, Erweiterung und Pfad anzugeben. Alle Dateisuchemusterpfade sind relativ zur .gitignore
Datei.
Nachfolgend finden Sie einige Beispiele für allgemeine Dateisuchemuster:
# Ignore all files with the specified name.
# Scope is all repo folders.
config.json
# Ignore all files with the specified extension.
# Scope is all repo folders.
*.json
# Add an exception so as to not ignore a file with the specified name.
# Scope is all repo folders.
!package.json
# Ignore a file with the specified name.
# Scoped to the 'logs' subfolder.
/logs/test.logfile
# Ignore all files with the specified name.
# Scoped to the 'logs' subfolder and all folders beneath it.
/logs/**/test.logfile
# Ignore all files in the 'logs' subfolder.
/logs/
Sobald Sie eine .gitignore
Datei ändern, aktualisiert Git die Liste der Dateien, die sie ignoriert.
Hinweis
Windows Benutzer müssen ein Schrägstrichtrennzeichen in einer .gitignore
Datei anstelle eines Backslash verwenden. Alle Benutzer müssen beim Angeben eines Ordners einen Nachlauf /
hinzufügen.
Verwenden einer globalen Gitignore-Datei
Sie können eine .gitignore
Datei als globale Ignorierendatei festlegen, die für alle lokalen Git-Repos gilt. Verwenden Sie dazu den git config
Befehl wie folgt:
git config core.excludesfile <gitignore file path>
Eine globale .gitignore
Datei hilft sicherzustellen, dass Git bestimmte Dateitypen, z. B. kompilierte Binärdateien, in jedem lokalen Repo nicht festnimmt. Dateisuchemuster in einer repospezifischen .gitignore
Datei haben Vorrang vor Mustern in einer globalen .gitignore
Datei.
Verwenden einer Ausschließendatei
Sie können auch Dateisuchemustereinträge zur exclude
Datei im .git/info/
Ordner Ihres lokalen Repo hinzufügen. Die exclude
Datei informiert Git darüber, welche nicht nachverfolgten Dateien ignoriert werden sollen, und verwendet die gleiche Syntax des Dateisuchmusters als .gitignore
Datei.
Einträge in einer exclude
Datei gelten nur für nicht nachverfolgte Dateien und verhindern nicht, dass Git Änderungen an engagierten Dateien meldet, die sie bereits nachverfolgt. Nur eine exclude
Datei ist pro Repo vorhanden.
Da Git die exclude
Datei nicht committ oder pusht, können Sie sie sicher verwenden, um Dateien auf Ihrem lokalen System zu ignorieren, ohne sich auf alle anderen zu auswirken.
Verwenden des Git-Updateindexs zum Ignorieren von Änderungen
Manchmal ist es praktisch, das Nachverfolgen einer lokalen Repodatei vorübergehend zu beenden und Git ignoriert Änderungen an der Datei. Sie können beispielsweise eine Einstellungsdatei für Ihre Entwicklungsumgebung anpassen, ohne dass das Risiko besteht, Ihre Änderungen zu übernehmen. Dazu können Sie den git update-index
Befehl mit dem skip-worktree
Flag ausführen:
git update-index --skip-worktree <file path>
Um die Nachverfolgung fortzusetzen, führen Sie den git update-index
Befehl mit dem --no-skip-worktree
Flag aus.
Oder Sie können die Nachverfolgung einer Datei vorübergehend beenden und Git Änderungen an der Datei ignorieren, indem Sie den git update-index
Befehl mit dem assume-unchanged
Flag verwenden. Diese Option ist weniger effektiv als das skip-worktree
Flag, da das assume-unchanged
Flag von einem Git-Vorgang pull
zurückgesetzt werden kann, der Dateiinhalte ändert.
git update-index --assume-unchanged <file path>
Um die Nachverfolgung fortzusetzen, führen Sie den git update-index
Befehl mit dem --no-assume-unchanged
Flag aus.
Verwenden von Git rm zum Ignorieren von Änderungen
Einträge in einer .gitignore
exclude
Oder Datei haben keine Auswirkungen auf Dateien, die Git bereits verfolgt. Git verfolgt Dateien, die Sie zuvor festgelegt haben. Führen Sie die folgenden Befehle aus, um eine Datei endgültig aus der Git-Momentaufnahme zu entfernen, damit Git sie nicht mehr nachverfolgt, aber ohne es aus dem Dateisystem zu löschen:
git rm --cached <file path>
git commit <some message>
Verwenden Sie dann einen oder exclude
einen .gitignore
Dateieintrag, um zu verhindern, dass Git Änderungen an der Datei meldet.