Saltar al contenido

Fusionar rama de desarrollo con maestro

Solución:

Generalmente me gusta fusionar master en el development primero para que si hay algún conflicto, pueda resolver en el development rama en sí y mi master permanece limpio.

(on branch development)$ git merge master
(resolve any merge conflicts if there are any)
git checkout master
git merge development (there won't be any conflicts now)

No hay mucha diferencia en los dos enfoques, pero a veces he notado que no quiero fusionar la rama en master sin embargo, después de fusionarlos, o que todavía hay más trabajo por hacer antes de que se puedan fusionar, por lo que tiendo a dejar master intacto hasta la materia final.

EDITAR: De comentarios

Si desea realizar un seguimiento de quién realizó la fusión y cuándo, puede usar --no-ff bandera mientras se fusiona para hacerlo. Por lo general, esto es útil solo cuando se fusionan development en el master (último paso), porque es posible que deba fusionar master dentro development (primer paso) varias veces en su flujo de trabajo, y la creación de un nodo de confirmación para estos puede no ser muy útil.

git merge --no-ff development

Personalmente, mi enfoque es similar al tuyo, con algunas ramas más y un poco de aplastamiento de confirmaciones cuando vuelven a master.

A uno de mis compañeros de trabajo no le gusta tener que cambiar tanto de rama y permanece en la rama de desarrollo con algo similar a lo siguiente, todo ejecutado desde la rama de desarrollo.

git fetch origin master

git merge master

git push origin development:master

La primera línea se asegura de que tenga las confirmaciones ascendentes que se hayan realizado para dominar desde la última vez que actualizó su repositorio local.

El segundo extrae esos cambios (si los hay) del maestro al desarrollo

El tercero empuja la rama de desarrollo (ahora completamente fusionada con master) hasta origin / master.

Puede que tenga su flujo de trabajo básico un poco mal, pero esa es la esencia principal.

Explicación desde abajo para aquellos que vinieron aquí sin ningún conocimiento de sucursales.

La lógica básica de desarrollo de la rama maestra es: solo trabaja en otras ramas y usa la maestra solo para fusionar otras ramas.

Comienzas a crear una nueva rama de esta manera:

  1. Clone el repositorio en su directorio local (o cree un nuevo repositorio):
$ cd /var/www
$ git clone [email protected]:user_name/repository_name.git
  1. Crea una nueva rama. Contendrá los archivos más recientes de su repositorio de rama maestro
$ git branch new_branch
  1. Cambia tu rama de git actual a new_branch
$ git checkout new_branch
  1. Codifica, confirma, como de costumbre …
$ git add .
$ git commit -m “Initial commit”
$ git push # pushes commits only to “new_branch”
  1. Cuando termine el trabajo en esta rama, fusionar con la rama “maestra”:
$ git merge master
$ git checkout master # goes to master branch
$ git merge development # merges files in localhost. Master shouldn’t have any  commits ahead, otherwise there will be a need for pull and merging code by hands!
$ git push # pushes all “new_branch” commits to both branches - “master” and “new_branch”

También recomiendo usar la aplicación Sourcetree para ver el árbol visual de cambios y ramas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *