2014-03-18 16 views
8

Ich habe versucht, eine rebase auf Code, den ich begangen hatte, aber nicht gedrängt, weil ich gehört hatte, dass es einige Änderungen in der Herkunft, die Auswirkungen auf das, woran ich arbeitete . Hier ist, was ich bekommen:Git Rebase schlägt mit Konflikten, aber es gibt keine Konflikte

$ git rebase origin/thor-develop 
First, rewinding head to replay your work on top of it... 
Applying: PH-2127: F193: SYO for Signed in User 
Using index info to reconstruct a base tree... 
M  js/angular/localization/StoreListCtrl.js 
M  templates/default_site/site_embed.group/html_header.html 
<stdin>:17: trailing whitespace. 

<stdin>:73: trailing whitespace. 

<stdin>:77: trailing whitespace. 

<stdin>:78: trailing whitespace. 
          $scope.address_dropdown = addressStore.getTop($scope.my_occasion, 3); 
<stdin>:79: trailing whitespace. 

warning: squelched 16 whitespace errors 
warning: 21 lines add whitespace errors. 
Falling back to patching base and 3-way merge... 
Auto-merging templates/default_site/site_embed.group/html_header.html 
Auto-merging js/angular/localization/StoreListCtrl.js 
CONFLICT (content): Merge conflict in js/angular/localization/StoreListCtrl.js 
Failed to merge in the changes. 
Patch failed at 0001 PH-2127: F193: SYO for Signed in User 

When you have resolved this problem run "git rebase --continue". 
If you would prefer to skip this patch, instead run "git rebase --skip". 
To check out the original branch and stop rebasing run "git rebase --abort". 

Wir verwenden Tortoisegit als Front-End-Editor, also ging ich in das Resolve Tool. Es zeigt normalerweise Unterschiede, die natürlich OK sind, und Konflikte, die es nicht sind. Es zeigt mir absolut keine Konflikte in der referenzierten Datei (StoreListCtrl.js). Es gibt offensichtlich Unterschiede, aber keine Konflikte. Was bedeutet das und wie repariere ich es, damit ich die Rebase vervollständigen und meinen Code zusammenführen kann?

+0

vorsichtig mit diesem verwenden. Es ist immer eine gute Idee zu überprüfen, dass Ihre Rebase funktioniert hat. Meine übliche Lösung wäre hier, die Ergebnisse vor der Umstellung mit dem Leiter der Branche zu vergleichen (es sollte keine Unterschiede geben, es sei denn, Sie haben Patches geändert, um Upstream-Änderungen zu berücksichtigen, und hoffentlich sind diese einfach genug, um sie als korrekt zu bestätigen). Momentan scheint meine Umgebung abgehört zu werden und Git bricht aus der Git-Rebase heraus, ähnlich wie das OP. Wenn ich aber 'rebase - fortfahre' und später vergleiche, sind meine Autosquash-Korrekturen verloren. – bambams

Antwort

7

Es ist möglich, dass das Lösungstool die Konflikte automatisch für Sie löste. Es ist mir passiert (und verwirrt mich) vorher. In diesem Fall können Sie wahrscheinlich direkt zu git rebase --continue gehen.

Die vollständige Checkliste ist:

  • wenn git status zeigt keine un-inszenierten Änderungen:
    • , wenn diese Dateien die Chevrons <<<>>> Markierungs Konflikte haben:
      • die Konflikte zu beheben und die Dateien speichern
    • Jetzt alle unzensierten Änderungen mitdurchführen: Dies markiert die Konflikte aufgelöst
  • jetzt alle Konflikte gelöst sind und markiert: git rebase --continue
+0

Das scheint geschehen zu sein. Rette mich vor zu schlauer Software. – EmmyS

+0

TortoiseGit ruft nicht 'git rebase --continue' auf. Es hat eine Benutzeroberfläche zum Lösen von Konflikten und Sie klicken auf die Schaltfläche Weiter, um 'git commit' auszuführen und den nächsten Commit auszuwählen. – linquize

+0

Ich habe nicht gesagt, dass es bereits die Rebase fortgesetzt hat, aber dass es die Konflikte gelöst hat. – Useless