Ich arbeite an einem WordPress-basierten Projekt und möchte mein Projekt bei jeder neuen Release-Version von WP patchen. Dazu möchte ich einen Patch zwischen zwei Commits oder Tags generieren.
Zum Beispiel /www/WP
mache ich in meinem Repo Folgendes :
$git patch-format com1..com2 --stdout > ~/patchs/mypatch.patch
Oder
$git patch-format tag1..tag2 --stdout > ~/patchs/mypatch.patch
/www/WP
Git Natif WordPress
/www/myproject
Mein Git-Projekt basiert auf WordPress
Die git apply
Befehlszeile funktioniert nicht, denke ich, weil wir uns in verschiedenen Repositorys befinden.
Kann ich eine Patch-Datei ohne Commit, nur ein Differential, generieren und auf ein anderes Git-Repository anwenden?
Vielen Dank im Voraus.
$git diff -u tag1..tag2 > mypatch.patch
und$git apply --stat > mypatch.patch
die Antwort ist0 files changed
ein anderer Vorschlag bitte? :)git apply
. Ich habe meine Antwort mit einem Beispiel aktualisiert.git diff -p tag1 tag2 > my.patch
was gut funktioniert hat.Only unified diff (-uNr) format is acceptable.
aber wenn ich es versuche,git diff -uNr tag1..tag2 > mypatch.patch
bekomme ich die Nachrichtusage: git diff [<options>] [<commit> [<commit>]] [--] [<path>...]
git diff ...
+git apply ...
behandeln Sie gelöschte / verschobene Dateien nicht richtig ... wenngit format-patch ...
+git am ...
.Um Patches für mehrere Commits zu erstellen, sollten Sie den
format-patch
Befehl git verwenden, zDadurch werden Ihre Commits in eine Patch-Datei im Postfachformat exportiert.
Führen Sie Folgendes aus, um einen Patch für das letzte Commit zu generieren:
Wenden Sie dann in einem anderen Repository den Patch per
am
git-Befehl an, zSiehe:
man git-format-patch
undgit-am
.quelle
patch -p1
? sourceware.org/glibc/wiki/…Um einen Patch für nur ein bestimmtes Commit zu erstellen, verwenden Sie als Ergänzung:
Stellen Sie beim Generieren der Patch-Datei sicher, dass Ihr anderes Repo weiß, wo es sich befindet, wenn Sie es verwenden
git am ${patch-name}
git apply --check ${patch-name}
Stellen Sie vor dem Hinzufügen des Patches sicher, dass keine Konflikte vorliegen.quelle