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 .gitignoreneues 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.

Screenshot of the context menu options for changed files in the Git Changes window in Visual Studio 2019.

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.

Screenshot of the context menu options for changed files in Team Explorer in Visual Studio 2019.

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-worktreeFlag 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-worktreeFlag, 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 .gitignoreexclude 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.

Nächste Schritte