Git sobrescribir maestro con rama
Git está acostumbrado a realizar un seguimiento del código fuente que estamos utilizando; también facilita la colaboración y nos ayuda a preservar nuestro proyecto hasta el estado actual.
Cuando desarrollamos nuevas funciones, su historial debe estar al alcance de la mano, ya que es muy útil para desarrollar cualquier aplicación o documentación.
Git sobrescribir maestro con rama
Git tiene dos formas de mezclar los cambios de una rama a otra. Uno se reorganiza
y el otro se fusiona
con cualquier rama en otra rama del repositorio.
Este artículo discutirá la fusión de la rama master
en Git completamente desde otra rama del repositorio.
Al usar los flujos de trabajo de Git, los cambios que hemos realizado en nuestro código finalmente deben concluirse en la rama master
cuando se completan las tareas de la aplicación.
También debemos entender que es posible que tengamos alguna otra rama que hayamos desarrollado, que contiene cambios de código que aún no están listos para la implementación en producción, y hemos llamado a esta rama dev
de acuerdo con los requisitos y las reglas de la organización.
En algunos casos, hemos realizado demasiados cambios en nuestra rama dev
, y luego de eso, enfrentamos dificultades al combinar la rama dev
con nuestra rama master
; no se puede realizar fácilmente.
Una forma de superar esta situación agitada es reemplazar por completo nuestra rama master
con la rama dev
. Podemos lograrlo de dos maneras que se explican a continuación.
Fusionar estrategia como Ours
Para llevar a cabo esta estrategia, primero ejecutaremos los siguientes comandos para fusionar la rama dev
en la rama master
con la ayuda de la estrategia de fusión nuestra
, que es la siguiente.
git checkout dev
git merge -s ours master
git checkout master
git merge dev
La opción --strategy=ours
en la combinación está destinada a reemplazar el historial anterior de ramas de funciones. Ahora nuestro master
tendrá todo el contenido de nuestro dev
e ignorará todos los cambios en el master
.
Al aplicar este método, obtendremos un commit de fusión limpia y segura; otros desarrolladores que usan estas ramas también pueden tener la ventaja de esta fusión, ya que no experimentarán problemas al fusionar sus ramas de características.
Por otro lado, el inconveniente de este método es que esta combinación podría no funcionar si nuestra rama dev
y master
se han irradiado a una escala mayor en un proyecto.
Fuerza de empuje
La otra opción es forzar la inserción de la rama dev
con un nombre diferente, pero este método es salvaje debido al problema mencionado anteriormente.
git push -f origin dev: master
Con la ayuda del indicador de alias -f
mencionado en el comando, nuestra rama anterior master
se sobrescribe por completo con la rama dev
, incluido el historial.
Debemos tener mucho cuidado al aplicar el método anterior porque eliminará todas las commits presentes en la rama master
ya que tampoco están disponibles en la rama dev
del repositorio.
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