git – ¿Cómo puedo dividir el trabajo realizado en una rama sin conflictos al fusionar?

Pregunta:

Guión:

Tengo una rama de producción (P) y mi rama actual (C) que creé para trabajar en algunas características nuevas. Algunos de ellos están listos, sin embargo, trabajar en el resto llevará más tiempo del previsto.

Me gustaría pasar a producción (y fusionar con la rama de producción (P) ) las características que están listas ahora, y luego continuar trabajando en el resto de ellas en mi rama (C) actual .

Mi idea:

Puedo crear una nueva rama de preproducción (PP) , eliminar todas las referencias al código que no está listo en ella y fusionarla con la rama de producción (P) . Luego continuaré trabajando en la rama actual (C) y me fusionaré con la rama de producción (P) cuando mi trabajo esté listo.

Problema:

Cuando elimino referencias en la rama de preproducción (PP) , habrá muchos conflictos más adelante cuando fusione mi rama actual (C) con la rama de producción (P) . Me temo que puedo perderme algún cambio importante en el código. ¿Cómo puedo hacerlo mejor, evitando conflictos? La fusión es el poder de Git, por lo que supongo que no sé algo importante.

Respuesta:

Has cometido un error en tu flujo de git y ya no hay nada elegante para salvarte. En lugar de intentar eliminar cosas de una rama creada a partir de C, la mejor solución es crear la rama PP desde su rama P y seleccionar la rama C en la nueva rama PP.

git checkout production
git pull
git checkout -b pre_production
git cherry-pick ...

¿Por qué? En su caso, tendrá que repasar el código en la rama C de todos modos y, utilizando su enfoque, tendrá que decidir qué se eliminará y qué se quedará.

La solución para casos futuros, haga que sus sucursales estén más orientadas a las funciones, de esa manera solo puede fusionar las funciones que realmente desea.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım