HOWTO · Git

Verwendung von Patch-Dateien in Git

Der Artikel behandelt die folgenden Themen: Git-Patch-Dateien für Commits erstellen, geänderte Dateien in einem Patch anzeigen, auf Fehler prüfen und einen Git-Patch anwenden.

In diesem Tutorial werden wir Git-Patch-Dateien vorstellen. Der Artikel behandelt die folgenden Themen.

  1. Wie erstellt man Git-Patch-Dateien für Commits?
  2. Wie kann ich geänderte Dateien in einem Patch anzeigen?
  3. Wie kann ich auf Fehler prüfen?
  4. Wie wendet man einen Git-Patch an?

Wir verwenden eine Git-Patch-Datei, um die Änderungen von Commits zu speichern. Eine Patch-Datei enthält Daten wie das Datum eines Commit und eine Nachricht.

Sie können einen Git-Patch verwenden, um Änderungen auf Ihr Repository anzuwenden. Diese Patch-Dateien sind praktisch, wenn Sie keinen Schreibzugriff haben.

Erstellen Sie eine Patch-Datei aus Commits in Git

Wir verwenden den Befehl git format-patch, um Patch-Dateien zu generieren.

Um eine Patch-Datei für eine bestimmte Anzahl von Commits vor dem ausgewählten Commit zu erstellen, wenden Sie die Option -N auf Ihren Befehl an.

git format-patch -N <sha1-commit-hash>

Eine Alternative zum commit hash ist HEAD.

git format-patch -N HEAD

Verwenden Sie den folgenden Befehl, um eine Patch-Datei für einen bestimmten Bereich von Commits zu erstellen.

git format-patch <first-commit-hash>^..<end-commit-hash>

Fügen Sie Ihrem Befehl stdout>file.patch hinzu, um eine Datei für mehrere Commits zu erstellen.

Um alle Änderungen in Ihrer Patch-Datei anzuzeigen, führen Sie den Befehl git apply --stat <file.patch> aus.

git apply --stat <file.patch>

Der obige Befehl gibt die Patch-Datei an, aus der gelesen werden soll.

Wenn Sie den Patch auf Ihr Repository anwenden möchten, verwenden Sie den folgenden Befehl.

git apply <file.patch>

Der Befehl git format-patch speichert Ihren Commit in einem UNIX-Mailbox-Format. Sie können Patch-Dateien per E-Mail senden und empfangen.

Wenn Sie den Befehl git apply ausführen, um einen Patch anzuwenden, ignoriert Git die gepatchten Pfade, die nicht im Arbeitsverzeichnis Ihres Repositorys vorhanden sind.