Die verwandten Fragen, die SO mir anbieten, beantworten nur einfache Fälle, die mit einem Pull gelöst werden können - aber das funktioniert nicht gut, wie Sie unten sehen werden.Hat eine Verzweigung das Original-Repo, wenn der ursprüngliche Master-Zweig nicht zusammengeführt werden kann?
Es gibt ein Repository, das ich gegabelt habe, mit nur einem master
Zweig, und ich habe es gegabelt, und ich habe sowohl in meinem master
, und einem neuen Zweig meines eigenen, rw-style
gearbeitet. Der Besitzer des gegabelten Repositorys hat einige meiner Änderungen begangen, aber keine anderen; Die schwarzen Punkte oben rechts unten stehen für Commits von meinen beiden Niederlassungen master
und rw-style
.
Ich bin mir bewusst, die Gabel-Warteschlange verwendet, ist keine gute Idee, so bleibe ich weg von ihr. Die Verwendung von git pull
funktioniert, aber es erstellt einen Konflikt, den ich dann lösen müsste, und es führt auch zu doppelten Verlauf für meine master
-Zweig, und das sieht nicht besonders hübsch aus.
Ich kenne derzeit keine anderen Lösungen, also überlege ich gerade, aus zwei Commits, die ich noch nicht gepusht habe, einen Patch zu erstellen, lösche meine Fork, erstelle sie erneut aus dem Original und bewerbe mich dann meine Patches darüber.
Ist das die einzige Lösung?
git rebase origin/master
(während in der Gabelzinke):
Sorry, etwas verwirrt dort. Ich habe noch nie zuvor mit den Rebases gearbeitet. Als ich den Befehl ausprobierte, wurde mir gesagt "Aktueller Zweigmeister ist auf dem neuesten Stand.". Ich bin mir nicht sicher, auf welchen Zweig man sich als gegabelter und als Master bezieht. – unrelativity
@ a2h: Rebase, wenn ein Argument angegeben wird, versucht, den aktuellen Zweig auf dieses Argument umzuset- zen. Ich glaube, dass in Ihrem Fall, was Sie wirklich tun möchten, ist das Original-Projekt als Remote hinzufügen: 'git remote hinzufügen Start', holen Sie seinen aktuellen Zustand: 'git fetch Start', und dann auf * das *:' Rebase Git Rebase Start/Master'. (Ich habe den ursprünglichen Pre-Fork-Repo "Start" aufgerufen, so dass er nicht wie der Ursprung aussieht.) Vermutlich ist der Ursprung in Ihrem aktuellen Repository das Github-Projekt, nicht das Original, also "Master" ist in der Tat aktuell mit "Herkunft/Meister". –
Cascabel
@ a2h: Allerdings: Wenn es Konflikte mit einem versuchten Zusammenführen gibt, gibt es auch Konflikte mit einem versuchten Rebase. Es ist möglich, dass Sie dies beheben können, indem Sie 'git rebase -i' (interaktiv) verwenden und Zeilen für Commits entfernen, deren Inhalt sich bereits im Master des ursprünglichen Repos befindet. – Cascabel