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 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