Git Master mit Branch überschreiben

Abdul Jabbar 31 Mai 2022
Git Master mit Branch überschreiben

Git ist es gewohnt, den von uns verwendeten Quellcode zu verfolgen; Es erleichtert auch die Zusammenarbeit und hilft uns, unser Projekt auf dem aktuellen Stand zu halten.

Wenn wir neue Funktionen entwickeln, sollte ihre Historie immer zur Hand sein, da sie bei der Entwicklung jeder Anwendung oder Dokumentation sehr hilfreich ist.

Git Master mit Branch überschreiben

Git hat zwei Möglichkeiten, die Änderungen von einem Branch in einen anderen zu mischen. Einer wird rebasiert und der andere wird mit einem beliebigen Zweig in einen anderen Repository-Zweig zusammengeführt.

In diesem Artikel wird das vollständige Zusammenführen des master-Zweigs in Git aus einem anderen Repository-Zweig behandelt.

Bei der Verwendung von Git-Workflows müssen die Änderungen, die wir an unserem Code vorgenommen haben, nach Abschluss der Anwendungsaufgaben im Zweig master abgeschlossen werden.

Wir müssen auch verstehen, dass wir möglicherweise einen anderen Branch haben, den wir entwickelt haben, der Codeänderungen enthält, die noch nicht für die Bereitstellung in der Produktion bereit sind, und wir haben diesen Branch gemäß den organisatorischen Anforderungen und Regeln als dev bezeichnet.

In einigen Fällen haben wir zu viele Änderungen in unserem dev-Zweig vorgenommen, und danach haben wir Schwierigkeiten, den dev-Zweig mit unserem master-Zweig zu kombinieren; es kann nicht einfach durchgeführt werden.

Eine Möglichkeit, diese hektische Situation zu überwinden, besteht darin, unseren master-Zweig vollständig durch den dev-Zweig zu ersetzen. Wir können dies auf zwei Arten erreichen, die unten erklärt werden.

Fusionsstrategie als Ours

Um diese Strategie zu erreichen, werden wir zuerst die folgenden Befehle ausführen, um den dev-Zweig mit Hilfe der ours-Merge-Strategie, die die folgende ist, mit dem master-Zweig zusammenzuführen.

git checkout dev
git merge -s ours master
git checkout master
git merge dev

Die Option --strategy=ours im Merge soll die alte Historie von Feature Branches ersetzen. Jetzt hat unser master alle Inhalte unseres dev und ignoriert alle Änderungen im master.

Durch die Anwendung dieser Methode erhalten wir einen sauberen und sicheren Merge-Commit; andere Entwickler, die diese Zweige verwenden, können ebenfalls den Vorteil dieser Zusammenführung haben, da sie keine Probleme beim Zusammenführen ihrer Feature-Zweige haben werden.

Der Nachteil dieser Methode ist jedoch, dass diese Zusammenführung möglicherweise nicht funktioniert, wenn unsere Zweige dev und master in einem Projekt in größerem Umfang ausgestrahlt wurden.

Drücken erzwingen

Die andere Option besteht darin, das Pushen des dev-Zweigs unter einem anderen Namen zu erzwingen, aber diese Methode ist im Hinblick auf das oben diskutierte Problem brutal.

git push -f origin dev: master

Mit Hilfe des im Kommando erwähnten Alias-Flags -f wird unser früherer Zweig master komplett mit dem dev-Zweig überschrieben, inklusive der History.

Wir müssen bei der Anwendung der obigen Methode sehr vorsichtig sein, da sie alle im Zweig master vorhandenen Commits entfernt, da sie auch nicht im Zweig dev des Repositorys verfügbar sind.

Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

Verwandter Artikel - Git Branch