Wenn jemand von meinem git Commits handverlesene und machte Commits ihrer eigenen, wie zu tun fusionieren ich?

StackOverflow https://stackoverflow.com/questions/4465710

Frage

Angenommen ich Gabel jemand git Repo und Make verpflichtet A, B, C und D. Die persom, die ich gegabelt aus dann Kirsch nimmt A und C, die also A geworden ‚und C‘. Er macht auch Commits X, Y und Z von seinem eigenen. So nach all dies, mein Zweig hat A B C D, und sein hat A ‚C‘ X Y Z wird angenommen, dass beide Zweige veröffentlicht werden, so rebase keine attraktive Option. Man nehme auch an, dass X Y Z nicht in Konflikt steht mit einer A B C D. Wie kann ich diese beiden Zweige in einer sinnvollen Weise verschmelzen? Soll ich einfach fusionieren und dann manuell alles lösen? Gibt es etwas, das ich über doppelte Commit-Nachrichten im Protokoll des fusionierten Kopf tun kann? Sind diese beiden Zweige zu sync verurteilt nur durch Rosinenpickerei jeweils anderen Commits von jetzt an?

War es hilfreich?

Lösung

Eine gerade merge sollte funktionieren. Git sollte die identischen Sätze Änderung bemerkt und wird nicht versuchen, A / A ‚oder C / C‘ zu fusionieren. Wenn X, Y oder Z den gleichen Code, dass A berührt ‚/ C‘ geändert wird, können Sie zu lösen Konflikte gibt, vor allem wenn B oder D den gleichen Code berührt.

Sie können immer git merge --no-commit und überprüfen Sie das Ergebnis zu sehen, ob es das, was Sie erwartet.

Andere Tipps

Falls es keine Konflikte gibt, eine gerade merge ist offensichtlich. Wenn es Konflikte obwohl ...

Sie kann seine C verschmelzen‘erste, Konflikte in dieser Phase sind von Re-Anwendung Ihrer eigenen Änderungen, wenn sie nicht-trivial sind oder weil sie ein wenig außerhalb der Reihenfolge angewandt werden. Kann passieren, wenn Ihr C auf B aufbaut und seine C ‚war keine saubere Kopie, oder wenn eine der B C D auf A baut so seine A erneute Anwenden‘ nicht mehr ist offensichtlich, no-op, etc.

Sie können detaillierte Konflikt Untersuchung überspringen und einfach Ihre Version akzeptieren, manuell oder:

git merge --strategy=ours C'

fusionieren dann den Rest, mehr Aufmerksamkeit auf Konflikte zu zahlen. Wenn seine X Y Z in der Tat nicht ABCD Sachen berühren, sollte dies ohne Konflikte gehen. Wenn er etwas seltsam oder falsch während verschmelzenden C als C gemacht ‚und Sie es verworfen beim Einarbeiten C‘, kann sie zurückkommen und beißen Sie hier oder jederzeit in der Zukunft aber.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top