GIT Zweig mit Master überschreiben

32

Ich habe einen alten Entwicklerzweig, der völlig veraltet ist. Ich möchte es nicht entfernen, aber ich möchte seinen Inhalt vollständig durch den Master-Zweig ersetzen. Das heißt, ich möchte dev_branch = master

Ich habe es versucht:

git merge -s ours dev_branch

Hat aber nicht funktioniert ...

Cornwell
quelle

Antworten:

52

Wenn Sie alle Änderungen von masterin möchten dev_branch, dann:

git checkout dev_branch
git reset --hard master

Dies funktioniert nur, wenn andere Benutzer das Repository nicht geklont haben.

Wenn Sie bereits dev_branchauf eine Fernbedienung gepusht haben, müssen Sie Folgendes tun:

git push --force

Zum Drücken auf die Fernbedienung. Warnung: Dies wird die Geschichte des Zweigs für Leute brechen, die ihn zuvor geklont haben! Dann müssen andere Leute ein tun , git pull --rebaseauf die dev_branchdie Änderungen zu erhalten.


Sie können den dev-Zweig auch in einen alten Zweig umbenennen und dann einen neuen Zweig mastermit demselben Namen erstellen:

git branch -m dev_branch old_dev_branch
git branch -m master dev_branch

Oder verwenden Sie die oursStrategie - nicht sicher, warum es bei Ihnen nicht funktioniert:

git checkout master
git merge -s ours dev_branch
git checkout dev_branch
git merge master
slhck
quelle
Ich denke, dass Sie mit der Umbenennungslösung feststellen werden, dass Sie nicht mehr dev_branchauf Origin pushen können (wenn es eine gab), und dass Sie auch keine masterZweigstelle mehr vor Ort haben werden.
Aidan
Danke @slhck! Aus irgendeinem Grund wurde mein Stage Branch nach einer normalen Zusammenführung nicht aktualisiert. Es hieß immer wieder, meine Bühnenfiliale sei auf dem neuesten Stand. Die Verwendung der "ours" -Strategie löste dies für mich.
Slick Shinobi
Unseres würde nur in Konflikt stehende Teile betreffen, aber er möchte den Zweig vollständig erneuern, nicht nur die Konflikte !? (Dies ist zumindest das, was ich tun muss und warum ich dieses Q gefunden habe) - Ich werde mich umbenennen!
Martin Meeser