Auflösen von Git-Konflikten in SourceTree

8

Ich habe vorher das NetBeans GIT Plugin benutzt, 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 finden.

Ich bin jedoch festgefahren, als es zu Dateikonflikten kam, als ich mit der Arbeit meines Freundes verschmolz. 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 für mich nicht gut funktioniert. 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 habe versagt. Es hat die Konflikte nicht behoben und zwei Dateien zusammengeführt.

Als ich durch das Internet suchte, fand ich heraus, dass einige Leute externe SourceTree-Konfliktlösungs-Plugins zum Zusammenführen verwenden. 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. Kann einer von ihnen mir bitte sagen, wie man Konflikte in SourceTree effektiv löst?

Soll ich ein externes Plugin verwenden oder das External Merge Tool verwenden (wenn ja, wie kann ich das verwenden)?

    
The Dude 11.06.2014, 07:20
quelle

1 Antwort

10

Ich benutze SourceTree zusammen mit TortoiseMerge / Diff, einem sehr einfachen und praktischen Werkzeug zum Vergleichen / Zusammenführen.

Wenn Sie es auch verwenden möchten, dann:

  1. Erhalte eine Standalone-Version von TortoiseMerge / Diff (ziemlich alt, da sie seit der Version 1.6.7 von TortosieSVN nicht mehr eigenständig ausgeliefert wird, also seit Juli 2011). Links und Details in dieser Antwort .

  2. Entpacke TortoiseIDiff.exe und TortoiseMerge.exe in einen beliebigen Ordner ( c:\Program Files (x86)\Atlassian\SourceTree\extras\ in meinem Fall).

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

  4. Treffe OK und zeige SourceTree auf deinen Standort von TortoiseIDiff.exe und TortoiseMerge.exe .

Danach können Sie Resolve Conflicts > Launch External Merge Tool aus dem Kontextmenü für jede Konfliktdatei 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 Sicherungskopien erstellt, auch wenn die entsprechende Option deaktiviert ist .

Für dieses Problem gibt es eine alternative Lösung , die KDiff3 anstelle von TortoiseDiff / TortoiseMerge .

    
trejder 23.09.2014, 21:08
quelle