Wie zu zwingen, Stellungswechsel, wenn gleichzeitig änderungen an beide Zweige manuell?
Mein repository sieht folgendermaßen aus:
X - Y- A - B - C - D - E branch:master
\ \
\ \ merge master -> release
\ \
M --- BCDE --- N branch:release
Hier "M - BCDE - N" manuell (leider!) angewendete änderungen ungefähr das gleiche als einzelne commits "A - B - C - D - E" (scheint aber GIT nicht wissen, dass diese Veränderungen sind die gleichen). Ich möchte Stellungswechsel und erhalten die folgende Struktur:
X - Y- A - B - C - D - E branch:master
\
* branch:release
I. e. Ich will branch:release genau das gleiche wie branch:master und Gabel es aus des Meisters KOPF.
Aber wenn ich "git rebase master" sitzen in der Filiale release, GIT Berichte über viele Konflikte und refuces rebasierung. Wie könnte ich dieses Problem lösen?
Andere Erklärung dieser: ich möchte, zu "re-create" - branch:release von Grund aus Meister den KOPF. Und es gibt eine Menge von anderen Leuten, die sich schon aus "git pull" für die Branche:release, so kann ich nicht verwenden git reset + git push -f.
- Sie sind nicht wirklich Fragen die richtige Frage hier - du hast festgestellt, dass Sie nicht die Geschichte neu schreiben mit
push -f
, damit Sie absolut nicht Stellungswechsel. Was Sie wollen ist eine Weise zu verschmelzen, und änderungen verwerfen, (die ist, was ich in meiner Antwort).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihnen sagen, dass die Menschen gezogen haben, den release-Zweig bereits, so dass Sie nicht zurücksetzen können. Das bedeutet auch, dass Sie nicht rebase - entweder die Art und Weise, Sie verschieben den ref in eine nicht-merge Weg und stören alle anderen.
Unter der Annahme, dass Sie wegwerfen wollen alles auf den release-Zweig (ich bin ein wenig verwirrt durch die
M
) und machen es identisch zu meistern (warum zeigst du die*
?), hier ist was Sie tun können:Werden Sie am Ende mit diesem:
Den merge-commit
Z
wird verworfen habe alle änderungen aus den release, es ist nur dafür da, dass das release bewegt sich in einem schnellen Vorlauf. Aus der Dokumentation:Genau das ist Ihre situation!
Es ist auch keine schlechte Idee, verwenden Sie die
--no-commit
option auf das Zusammenführen, übernehmen anschließend manuell so, dass Sie eine chance, um die Nachricht zu Bearbeiten, und beachten Sie, was Sie getan haben.Könnten Sie
git rebase -i master
und entfernen Sie die Zeile fürBCDE
zu verwerfen, dass die revision insgesamt. Wenn es wirklich identisch istA-B-C-D-E
, dann sollten Sie nicht ein problem haben.