Also habe ich einen ziemlich großen Fehler gemacht. Ich habe einen Commit gemacht, gezogen, zusammengeführt (aber dabei den Code durcheinander gebracht) und dann gepusht. Ich möchte diese Zusammenführung wiederholen und den Code richtig machen. Gibt es eine Möglichkeit, dies zu tun?
Ich benutze Bitbucket.
Antworten:
Ich bin mir nicht sicher, ob dies der "gesegnete" Weg ist, aber hier ist, was ich getan habe, um das gleiche Problem zu lösen, ohne "Push" oder ähnliches erzwingen zu müssen.
Nehmen wir an, Ihre Historie sieht ungefähr so aus (und M ist die überflüssige Zusammenführung):
Beim Laufen
git checkout -b merge_fix <commit ID E>
wird ein Zweig erstellt, bevor wir Fehler gemacht haben:Lassen Sie uns nun die Zusammenführung in unserer neuen Niederlassung wiederholen. Wir können nicht einfach zusammenführen
master
, daher müssen wir den Commit vor dem Zusammenführen manuell auswählen:git merge <commit ID C>
Machen Sie nicht die gleichen Fehler, die Sie das letzte Mal gemacht haben!Vorausgesetzt, das Commit
G
sieht gut aus, möchten wir es jetzt mit der Spitze desmaster
Zweigs synchronisieren . Dieser Befehl weist git an, die Änderungen, die am Master vorgenommen wurden, zu ignorieren und zu erzwingen, dass unsere Änderungen zum Merge-Ergebnis werden:git merge -s ours master
Schließlich
H
möchten wir (wieder unter der Annahme, dass Commit gut aussieht) einen schnellen Vorlauf durchführenmaster
, um unsere feste Zusammenführung einzuschließen:Das verschiebt wirklich nur den
master
VerzweigungszeigerH
, aber ich werde die Gelegenheit nutzen, meine ASCII-Grafik ein wenig aufzuräumen:Und da hast du es! Sie haben die Zusammenführung erfolgreich wiederholt, ohne einen Verlauf ungültig zu machen.
quelle
Du kannst es so machen:
Das ist:
Denken Sie daran, dass
git push --force
alles, was Sie in der Remote-Filiale hatten, neu geschrieben wird, und dass auch andere Benutzer dieser Filiale davon betroffen sein können. (Normalerweise sollten Sie dies nicht tun.)quelle
git push --force
git merge --abort
und dann können Sie wieder zusammenführenquelle
Bitte überprüfen Sie diese Hoffnung, es ist nützlich für Sie
quelle