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.
- Wie erstellt man Git-Patch-Dateien für Commits?
- Wie kann ich geänderte Dateien in einem Patch anzeigen?
- Wie kann ich auf Fehler prüfen?
- 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.