2012-10-11 82 views
8

He estado trabajando en una rama de tema local durante algún tiempo, realizando solo algunos cambios de vez en cuando."Mantener" con maestro remoto cuando se trabaja en una rama de tema local de larga duración

Mientras tanto, la rama master ha evolucionado significativamente. Decidí incorporar los nuevos cambios en la rama principal en mi sucursal tema local (que apenas hay cambios en relación con el maestro original se comprometen a que me separaron de):

git fetch 
git checkout my_branch 
git merge origin/master 

pero luego git me advierte con:

Ingrese un mensaje de compromiso para explicar por qué es necesaria esta fusión, , especialmente si combina un flujo ascendente actualizado en una rama de tema.

Esto me hizo sentir curiosidad. ¿Por qué la advertencia? ¿Debo, en cambio, hacer un rebase? o cherry-pick? Y aparte de eso, ¿cómo usaría un rebase o un cherry-pick en mi caso?

+0

posible duplicado de [flujo de trabajo y git rebase vs fusionar las preguntas] (http://stackoverflow.com/questions/457927/git-workflow-and-rebase-vs-merge-questions) – R0MANARMY

Respuesta

6

Ha habido un debate sobre la redacción de este mensaje exacto con el mantenedor del núcleo de git porque tiene razón, no está muy claro.

Los laboratorios de títeres de programación directrices proporcionan una gran explicación de por qué esto no es óptima y proporcionan una solución más preferible:

Se debe trabajar en ramas puntuales y se fusionó en el uso de no-ff. La razón de esto es que el historial de git se vuelve mucho más claro. El tema ramas grupo relacionado se compromete muy bien, y la fusión con no-ff conserva esa agrupación en la historia.

No combine su rama ascendente en su rama de tema si es posible evitarla. Si bien esta es una forma de resolver los conflictos entre su desarrollo y desarrollo en la rama ascendente, conduce a una historia sucia, y especialmente a tener cambios de código en las asignaciones de fusión, que son súper duras de trabajar.

Preferimos que rebase su rama contra la corriente ascendente, para que no terminemos con ese desastre, si tiene que adaptarse a los cambios externos.

Puppet Labs

+0

Cuando dijeron: "Preferiríamos que modificaras tu rama contra la corriente ascendente, para que no terminemos con ese lío, si tienes que adaptarte a los cambios externos. ¿Significan * volver a basar en la rama temática *? ¿O al revés? –

+3

básicamente dice: rebase al mover los cambios de la rama ascendente a la rama temática, se fusionan al mover los cambios de la rama temática a la rama ascendente. – kayaker243

+1

Al revés. Regresé mi rama de temas a la corriente ascendente con frecuencia, ya que ambos avanzo en el tiempo y los movimientos ascendentes avanzan en el tiempo. 'git rebase -i master' mientras tengo mi rama de tema revisada. –

Cuestiones relacionadas