So wenden Sie einen Git -Patch an, wenn Sie eine Pull -Nummer erhalten
-
27-10-2019 - |
Frage
Ich habe eine Trunk -Version einer Codebasis von Git heruntergeladen, und es gibt Build -Fehler. Kalt ist jetzt ein Patch verfügbar, und ich habe eine E -Mail erhalten:
Siehe https://github.com/justintullososs/zeromq.node/pull/47 für Patch
Ich bin neu in Git, also bin ich mir nicht ganz sicher, was ich mit diesem "Patch" anfangen soll, da die Seite eher wie ein Diskussionsthread aussieht.
Weiß jemand, wie ich diesen Patch auf mein lokal geklontes Git -Repository erhalten/anwenden kann?
Lösung
Speichern Sie den Patch irgendwo. Wenn Sie Linux verwenden, können Sie Curl verwenden:
curl -L https://github.com/JustinTulloss/zeromq.node/pull/47.patch > /tmp/47.patch
Um den Patch -Gebrauch anzuwenden git apply
. Sie können sehen, ob sich der Patch sauber mit dem anwendet check
Möglichkeit. Wechseln Sie in Ihr Git -Verzeichnis und rennen Sie:
git apply --check /tmp/47.patch
Wenn es so aussieht, als ob Sie den Patch anwenden möchten
git apply /tmp/47.patch
Andere Tipps
Fügen Sie einfach a hinzu .patch
Am Ende, um den Patch zu bekommen:
https://github.com/justintullososs/zeromq.node/pull/47.patch
Sie können so etwas wie unten machen:
$ git checkout master
$ curl http://github.com/JustinTulloss/zeromq.node/pull/47.patch | git am
$ git push origin master
Die Regel scheint kürzlich geändert zu sein.
Zuvor haben wir eine PR genommen und a hinzugefügt .patch
am Ende, um den Patch zu bekommen
http://github.com/[group]/[project]/pull/30583.patch
Aber jetzt wird der Link umgeleitet (301) zu
https://patch-diff.githubusercontent.com/raw/[group]/[project]/pull/30583.patch
Also, wenn Sie verwenden curl
, du könntest mit der Pfeife sein git apply
Befehl zum Anwenden eines Git -Patchs aus der Pull -Anforderung
curl https://patch-diff.githubusercontent.com/raw/[group]/[project]/pull/30583.patch | git apply
Wenn das Patch jetzt nicht richtig für Sie ist, verwenden Sie git apply -R
Befehl zum Rollen der Änderung.
Damit Git Pull Anfrage 47 herunterladen und sie in Patch in die mylocalbranch
lokal, rennen:
git checkout -b mylocalbranch
git pull origin pull/47/head
Wenn die Pull -Anfrage nicht auf dem Origin -Repo liegt
git remote add patchremote https://github.com/JustinTulloss/zeromq.node
git pull patchremote pull/47/head
git fetch -q origin +refs/pull/47/merge:
git checkout -qf FETCH_HEAD