HOWTO · Git

Alle Dateien außer einer Datei zum Commit hinzufügen

Sie können eine Datei ausschließen, wenn Sie Dateien zum Commit in Git bereitstellen.

Auf dieser Seite

Dieser Artikel veranschaulicht, wie Sie alle Dateien zum Festschreiben hinzufügen und dabei eine Datei Ihrer Wahl ausschließen können. Dies ist praktisch, wenn Sie viele Dateien in einen Commit aufnehmen möchten und eine einzelne Datei weglassen müssen.

Anstatt jeweils eine Datei hinzuzufügen, können Sie diesen einfachen Schritten folgen.

Alle Dateien außer einer Datei zum Commit hinzufügen

Schauen Sie sich das Beispiel unten an. Angenommen, wir haben über zwanzig modifizierte Dateien, wie fügen wir alle bis auf eine hinzu?

Nehmen wir an, wir möchten eine requirements.txt-Datei aus dem Index ausschliessen. Wie würden wir vorgehen?

Wir können mehrere Befehle verwenden, um unsere Datei requirements.txt beim Staging auszuschließen. Diese sind:

  1. Unstage mit dem Befehl git reset.
  2. Verwenden Sie die Exclude Pathspec.
  3. Schließen Sie die Datei vorübergehend von der Verfolgung aus.

Verwenden Sie den Befehl git reset

Wenn Sie den Befehl git reset verwenden, müssen Sie alle Dateien zum Index hinzufügen und dann die gewünschte Datei aus der Staging-Umgebung entfernen.

Syntax:

# Start by staging all files
$ git add .
# To exclude a file
$ git reset -- path/to/file
# To exclude a folder
$ git reset -- path/to/folder/*

In unserem Fall fügen wir alle Dateien hinzu und entfernen die Staging-Datei requirements.txt, wie unten dargestellt.

$ git add .

Dadurch werden alle Dateien bereitgestellt. Um die Datei requirements.txt aus der Staging-Umgebung zu entfernen, führen wir Folgendes aus:

$ git reset -- path/to/requirements.txt

Dieser Befehl sollte unsere requirements.txt-Datei aus der Staging-Umgebung entfernen.

Verwenden Sie die Exclude Pathspec

Git-Version 1.9.0 und höher ermöglicht es uns, einen oder mehrere Pfade zu entfernen, während wir Dateien zum Commit hinzufügen. Dies ist mit der Pfadspezifikation :(exclude) möglich, die auch als :! geschrieben wird. oder :^.

Hier ist ein Beispiel.

$ git add --all -- ':!path/to/requirements.txt'

So schließen Sie einen Ordner aus:

$ git add --all -- ':!path/to/folder/*'

Datei vorübergehend von der Nachverfolgung ausschließen

Wir können unsere requirements.txt-Datei vorübergehend vom Tracking ausschliessen, wie unten dargestellt.

$ git update-index --assume-unchanged path/to/requirements.txt

Git schließt unsere Datei requirements.txt jedes Mal aus, wenn wir git add . ausführen. Befehl. Um alle mit --assume-unchanged gekennzeichneten Dateien aufzulisten, führen wir Folgendes aus:

$ git ls-files -v | grep "^h"

Um unsere Datei aus der ausgeschlossenen Liste zu entfernen, führen wir Folgendes aus:

$ git update-index --no-assume-unchanged path/to/requirements.txt

Kurz gesagt, es gibt mehrere Möglichkeiten, alle Dateien bis auf eine zum Index hinzuzufügen. Wie wir bereits besprochen haben, ist es am saubersten und effizientesten, Dateien vorübergehend von der Verfolgung auszuschließen.