Wie kann ich nach einer doppelten Änderung weiter zusammenführen?

8

Ich verwende git rebase -i , um den Verlauf neu zu schreiben - in diesem Fall ändere eine kleine Änderung der Änderungsmenge eines früheren Commits. Mit anderen Worten,

%Vor%

Ich weiß, C ändert sich auch implizit, aber Sie bekommen die Idee. Hier sind meine bisherigen Fortschritte:

  1. git rebase -i HEAD~2
  2. Ändern Sie B von keep in edit .
  3. Bearbeiten Sie die Datei.
  4. git commit -a --amend
  5. git rebase --continue
  6. "Konnte nicht anwenden [C] ..."

Ich habe die widersprüchlichen Zeilen in C aufgelöst, bin mir aber nicht sicher, wie ich sie als aufgelöst markieren soll, damit die Rebase fortgesetzt werden kann. git commit --amend versucht, B zu ändern, während git rebase --continue beschwert, dass der Arbeitsbaum schmutzig ist. (Und, tatsächlich, git status zeigt die Datei als "beide modifiziert".)

Was muss ich tun, um diese Rebase wieder auf Kurs zu bringen?

    
Ben Blank 17.04.2011, 23:28
quelle

2 Antworten

10

Wenn Sie auf die Konflikte stoßen, sollten Sie eine Nachricht in etwa so sehen:

%Vor%

Und genau das müssen Sie tun:

%Vor%

Versuchen Sie nicht, commit --amend zu verwenden. HEAD (das aktuelle Commit) bezieht sich immer noch auf das gerade vorhergehende, da die Konflikte dieses Commit verhindert haben, so dass, wie Sie gesehen haben, nur das bereits angewendete Commit geändert wird. rebase --continue wird fortfahren, um das neue Commit zu machen, das die aufgelösten Konflikte enthält.

    
Cascabel 18.04.2011, 00:03
quelle
1

Haben Sie versucht, dies explizit zu tun, z. B .: git add B' , dann binden Sie es mit --amend und dann mit git rebase --continue ?

    
urschrei 17.04.2011 23:35
quelle

Tags und Links