it-swarm.com.de

Gibt es beim Anwenden eines Patches eine Möglichkeit, Konflikte zu lösen?

Ich stehe an Fenstern.

Aus verschiedenen Gründen haben wir mehrere Git-Instanzen verschiedener SVN-Zweige.

Oft möchte ich ein Problem in Repository A beheben, einen Patch generieren und auf Repository B anwenden. Dies funktioniert einwandfrei, es sei denn, es liegen Konflikte vor.

Beim erneuten Basieren klicke ich einfach mit der rechten Maustaste auf den Ordner und verwende tortioseGit und wähle die Auflösungsoption. Dies bringt eine nette Benutzeroberfläche hervor, mit der ich meine Konflikte bewältigen kann.

Gibt es eine Möglichkeit, dies mit abgelehnten Patch-Blöcken zu erreichen?

Hier ist mein aktueller Ansatz zum Erstellen/Anwenden der Patches

git format-patch master --stdout > c:\\patch\\file.patch
git apply --reject --ignore-space-change --ignore-whitespace c:\\patch\\file.patch
110
Kenoyer130

So generieren Sie Ihren Patch:

git format-patch --stdout first_commit^..last_commit > changes.patch

Jetzt, wenn Sie bereit sind, die Patches anzuwenden:

git am -3 < changes.patch

das -3 führt bei Konflikten eine Dreifachzusammenführung durch. An dieser Stelle können Sie ein git mergetool wenn du zu einer GUI gehen willst oder die Dateien einfach manuell mit vim zusammenführen willst (der Standard <<<<<<, ||||||, >>>>>> Konfliktlösung).

216
g19fanatic

Wenn Sie beim Anwenden von Patches, erneutem Basieren oder Zusammenführen häufig auf denselben Konfliktsatz stoßen, können Sie die Funktion zur erneuten Verwendung der aufgezeichneten Auflösung verwenden. Auf diese Weise können Sie vordefinieren, wie Konflikte gelöst werden sollen, basierend darauf, wie Sie sie in der Vergangenheit gelöst haben. Einzelheiten zur Funktionsweise finden Sie unter http://git-scm.com/blog/2010/03/08/rerere.html .

10
mplf

TortoiseGit verfügt über eine Merge-Funktion, mit der Patch-Dateien geöffnet werden können.

Es gibt ein Bild davon hier .

3
ams

Mein Ansatz ist:

  • Erstellen Sie eine "Integration" -Branch, in der die Dateien identisch sind
  • Wenden Sie den Patch auf diesen Integration-Branch an
  • Füge es zusammen oder stelle es neu zusammen, um es zu meistern.
1
MichiBack