Ich habe 2 lokale Git-Repositorys, die beide auf dasselbe Remote-Repository verweisen.
git format-patch 1
Wie kann ich diesen Patch in einem Git-Repository auf das andere Repository anwenden?
Ich habe 2 lokale Git-Repositorys, die beide auf dasselbe Remote-Repository verweisen.
git format-patch 1
Wie kann ich diesen Patch in einem Git-Repository auf das andere Repository anwenden?
Antworten:
Hinweis: Sie können zunächst eine Vorschau der Funktionen Ihres Patches anzeigen:
Zuerst die Statistiken:
git apply --stat a_file.patch
Dann ein Trockenlauf, um Fehler zu erkennen:
git apply --check a_file.patch
Schließlich können Sie git am
Ihren Patch als Commit anwenden: Sie können einen angewendeten Patch abmelden.
Dies kann zum späteren Nachschlagen nützlich sein.
git am --signoff < a_file.patch
Siehe ein Beispiel in diesem Artikel :
In Ihrem Git-Protokoll finden Sie, dass die Festschreibungsnachrichten ein "Abgemeldet von" -Tag enthalten. Dieses Tag wird von Github und anderen gelesen, um nützliche Informationen darüber zu erhalten, wie das Commit im Code gelandet ist.
git am < somepatch.patch
ergibt "fatal: leerer Identitätsname (für <>) nicht erlaubt". Kann mir jemand erklären warum?
Author
Header im Patch, und / oder du hast es nicht getan git config user.{name,email}
.
git apply --check
sagt patch does not apply
und git apply -3
sagt repository lacks the necessary blob to fall back on 3-way merge.
In git ist es ein Kinderspiel, Commits neu zu gründen; Aber wie können Benutzer ihre Patches auf den aktualisierten Code zurücksetzen ?
git apply name-of-file.patch
Oder, wenn Sie es in die alte Schule treten:
cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
Zuerst sollten Sie sich den Unterschied zwischen git am
und notierengit apply
Wenn Sie verwenden git am
, möchten Sie normalerweise viele Patches anwenden. Daher sollte verwendet werden:
git am *.patch
oder nur:
git am
Git findet Patches automatisch und wendet sie der Reihe nach an ;-)
UPD
Hier erfahren Sie, wie Sie solche Patches generieren
git apply
.. und in --reverse
:-) 👍
Wenn Sie es als Commit anwenden möchten , verwenden Sie git am .
Wenn Sie eine JetBrains-IDE (wie IntelliJ IDEA, Android Studio, PyCharm) verwenden, können Sie die Patch-Datei ziehen und in die IDE ablegen. Daraufhin wird ein Dialogfeld mit dem Inhalt des Patches angezeigt. Jetzt müssen Sie nur noch auf "Patch anwenden" klicken und ein Commit wird erstellt.
Sie können das unten genannte cmd verwenden
git apply fileName.patch