2012-06-21 9 views
9

tuve una rama puntual locales basa fuera una rama remota en el repositorio git:Con git, ¿cómo guardo una rama de tema después de que la rama remota principal haya sido actualizada?

1 - 2 - 4 - 5 - 9 - 11 master 
     \ 
     3 - 6 - 8 - 12 remote branch 
       \ 
       7 - 10 my topic 

La rama remota ha sido recientemente porcentualizada fuera maestro:

1 - 2 - 4 - 5 - 9 - 11 master 
         \ 
      ?   3' - 6' - 8' - 12' remote branch 
       \ 
       7 - 10 my topic 

me gustaría reajustar mi sucursal fuera de tema el jefe de la rama remota para que eventualmente pueda fusionar mis cambios nuevamente en el control remoto. Sin embargo, debido a que el hash de la matrices asignan ha cambiado, tratando un simple

$ git rebase origin/remote_branch 

resultados en una serie de conflictos en los archivos que nunca he tocado.

¿Hay algo que pueda hacer para limpiar estas ramas?

Respuesta

7

Simplemente volver a basar en origin/remote_branch es confuso para git porque trata de volver a establecer las bases de datos obsoletos en la punta de remote_branch, lo que genera confusiones y conflictos duplicados.

lugar debe conectar de vez en cuando, al nuevo punto de compromiso en relación con el sexto, usando la opción --onto

git rebase --onto <6'-SHA> <6-SHA> my-topic 

<6'-SHA> y <6-SHA> son, respectivamente, los nuevos y viejos ids de la confirmación, donde fue my-topic creado.

+1

Perfecto, hice exactamente lo que necesitaba. Para cualquier persona que tropezara con esto, pude obtener el <6-SHA> volviendo al 'registro de git' para mi rama de tema hasta que encontré el primer compromiso de la rama padre. Luego utilicé el autor, la fecha y el mensaje de confirmación para buscar el nuevo hash en el registro de origen/remote_branch. –

Cuestiones relacionadas