Ich begann eine interaktive Rebase und wählte zwei Commits von "später in der Geschichte", um zu versuchen, sie zu "früher in der Geschichte" zu schieben. Also versuche ich zu tun:Wie man ein Rebase-Commit hält und nicht nach den nächsten fragt?
E<-D<-C<-B<-A
=>E<-B<-A<-D<-C
Der erste Satz (B) begehen beteiligt Arbeit verschmelzen, aber das ist jetzt geschehen. Es sieht also gut aus und ist am richtigen Ort. Aber dann, als ich rebase --continue
tat, bekam ich eine Menge Konflikte für A. Ich erkannte, dass es eine tiefe Abhängigkeit von D hatte, die ich nicht bemerkte, und ich sollte nicht versuchen, es so zu bewegen.
Aber ich möchte nicht rebase --abort
tun, weil die Arbeit auf B gut ist. Und ich will nicht --skip
es, wenn das bedeutet, A vollständig zu werfen. : -/
Wie bitte ich es zu vergessen, das aktuelle Wrack einer laufenden Fusion für A, die ich fragte ... und tun, als ob B meine einzige Anfrage war? So, jetzt ich bin mit dem Ziel, das Fütterungsmaterial zu beenden und erhalten:
E<-B<-D<-C<-A
Die kurze Version ist, dass Sie nicht können. Rebase funktioniert durch * Kopieren * von Commits, ohne sie zu verändern, also ist Ihre ursprüngliche 'E <-D <-C <-B <-A'-Kette immer noch da und Ihre neue' E <-B-Kette-so weit ist es auf einem * neuen * Zweig gebaut werden. Wenn Sie die Rebase beenden, wird die alte Kette verlassen und die Zweigmarke in die neue Kette verschoben. Wenn die Rebase abgebrochen wird, wird der neue Zweig vollständig gelöscht, wobei nur die alte Kette beibehalten wird, so [chorobas Antwort] (http://stackoverflow.com/a/37417645/1256452), die der neuen Kette einen neuen Namen hinzufügt , ist der Weg zu gehen. – torek