8

Ich habe NetBeans GIT-Plugin zuvor verwendet, dann habe ich mich entschieden, zu SourceTree zu wechseln, da es effizienter und leistungsfähiger ist. Als Neuling in SourceTree habe ich es geschafft, grundlegende Pull-, Push- und Commit-Workflows zu entwickeln.Auflösen von Git-Konflikten in SourceTree

Allerdings habe ich stecken, wenn es Dateikonflikte waren, als mit meiner Freundin Arbeit verschmelzen. In NetBeans, wenn es irgendwelche Konflikte gibt, schlägt das Plugin vor, es in einem Popup aufzulösen und ich möchte nur zur Konfliktauflösungsschnittstelle gehen und den korrekten Codeabschnitt akzeptieren, indem ich auf eine Schaltfläche klicke. Das war einfach.

In SourceTree gibt es etwas namens External Merge Tool, das nicht gut für mich funktioniert hat. Wenn ich mit der rechten Maustaste auf die Datei mit Konflikten klicke, öffnet sie einfach zwei Dateien nebeneinander und es gab Pfeile, die in der Mitte von links nach rechts zeigen. Am unteren Bildschirmrand befindet sich ein Dropdown-Menü, in dem Sie die Pfeilrichtung auswählen können.

Ich habe versucht, diese Schnittstelle zu verwenden, um Konflikte zu lösen, aber ich scheiterte. Es hat die Konflikte nicht behoben und zwei Dateien zusammengeführt.

Als ich durch das Internet gesucht, fand ich, dass einige Leute zu lösen Plugins externen SourceTree Konflikt verwenden zu verschmelzen. Eigentlich bin ich hier etwas verloren. Deshalb habe ich beschlossen, dieses Problem hier zu posten, da dies jemandem wie mir eines Tages helfen könnte.

Ich weiß, dass es viele Leute gibt, die SourceTree schon lange benutzen. Könnte einer von ihnen mir bitte sagen, wie Konflikte in SourceTree effektiv gelöst werden können?

Soll ich ein externes Plugin oder soll ich den External Merge-Tool verwenden (wenn ja, wie kann ich diese verwenden)?

Antwort

10

I SourceTree zusammen mit TortoiseMerge/Diff bin mit, die sehr einfach und convinient diff/Merge-Tool.

Wenn Sie möchten, dass es so gut bedienen, dann:

  1. Standalone-Version von TortoiseMerge/Diff Get (ziemlich alt, da es keine eigenständigen mitliefert seit Version 1.6.7 von TortosieSVN, das ist seit Juli 2011). Links und Details in this answer.

  2. Entpacken Sie TortoiseIDiff.exe und TortoiseMerge.exe zu einem beliebigen Ordner (c:\Program Files (x86)\Atlassian\SourceTree\extras\10 in meinem Fall).

  3. In SourceTree offen Tools > Options > Diff > External Diff/Merge. Wählen Sie TortoiseMerge in beiden Dropdown-Listen.

  4. Hit OK und Punkt SourceTree zu Ihrem Standort von TortoiseIDiff.exe und TortoiseMerge.exe.

Danach können Sie Resolve Conflicts > Launch External Merge Tool aus dem Kontextmenü auf jeder konfliktbehafteten Datei in Ihrem lokalen Repository auswählen. Dies öffnet TortoiseMerge, wo Sie mit allen Konflikten umgehen können, die Sie haben. Wenn Sie fertig sind, schließen Sie einfach TortoiseMerge (Sie müssen die Änderungen nicht einmal speichern, dies wird wahrscheinlich automatisch durchgeführt) und nach ein paar Sekunden sollte SourceTree das elegant behandeln.

Das einzige Problem ist, dass es automatisch Sicherungskopie erstellt, obwohl proper option is unchecked.

Es gibt an alternate solution für dieses Problem, die KDiff3 verwendet statt TortoiseDiff/TortoiseMerge.