2015-01-28 5 views
29

Ich arbeite auf WordPress-Projekt basierend und möchte mein Projekt bei jeder neuen Version von WP patchen. Dafür möchte ich ein Patch zwischen zwei Commits oder Tags generieren.Erstelle eine Patch- oder Diff-Datei aus dem git-Repository und wende sie an ein anderes Git-Repository an

Zum Beispiel in meinem Repo /www/WP ich das tun:

$git patch-format com1..com2 --stdout > ~/patchs/mypatch.patch

Oder

$git patch-format tag1..tag2 --stdout > ~/patchs/mypatch.patch

/www/WPgit natif Wordpress

/www/myprojectMein git Projekt Wordpress basiert

Die git apply Kommandozeile funktionieren nicht, ich glaube, weil wir in unterschiedlichen Repositories sind.

Kann ich eine Patch-Datei ohne eine Commit-Juste und ein Differential generieren und auf ein anderes Git-Repository anwenden?

Danke Fortschritt.

Antwort

49

Sie können nur git diff verwenden, um eine unified diff geeignet für git apply zu produzieren:

git diff tag1..tag2 > mypatch.patch 

Sie können dann mit den resultierenden Patch anwenden:

git apply mypatch.patch 
+0

Danke Enrico, ich habe '$ git diff -u tag1..tag2> mypatch.patch' und' $ git apply --stat> mypatch.patch' die Antwort ist '0 Dateien geändert' irgendeinen anderen Vorschlag bitte? :) – zatamine

+0

Sie müssen den Pfad zu der Patch-Datei als Argument von 'git apply' angeben. Ich habe meine Antwort mit einem Beispiel aktualisiert. –

+0

Ich habe 'git diff -p tag1 tag2> my.patch' verwendet, was gut funktioniert hat. – barclay

10

Um Patch für mehrere Commits zu produzieren, sollten Sie format-patch git Befehl, z

Dies exportiert Ihre Commits in Patch-Datei im Mailbox-Format.

Patch für die letzten erzeugen begehen, auszuführen:

git format-patch -k --stdout HEAD^ 

dann in einer anderen Verwahrungsstelle das Patch von am git Befehl anzuwenden, z.B.

git am -3 -k file.patch 

Siehe auch: man git-format-patch und git-am.

Verwandte Themen