2011-07-26 12 views
32

Creé una nueva rama git B desde la rama A con la opción de seguimiento.Actualizando la rama actual desde la rama padre

Ahora, cuando la rama A se actualiza con algunas confirmaciones, también deseo realizar las confirmaciones en B, de modo que pueda realizar un seguimiento de las mismas y no tenga que enfrentar grandes cambios a veces.

¿Cómo debo abordar esto? ¿Se hace automáticamente en git?

+0

es el seguimiento de las ramas agregan realmente nada, además de decir que la rama A se alimenta de la rama A? –

+2

Deberías volver a establecer la base de tu rama B con A. –

Respuesta

35

Esto no se hace automáticamente. Tienes que fusionar manualmente tus cambios de A a B, lo cual es bastante simple. Simplemente cambiar a la rama B y hacer

git merge A 

Qué va a fusionar automáticamente los cambios de A a B. Mientras que usted no tiene ningún conflicto, todos los cambios en A será marcado como fusionado en B. Una de las mejores prácticas comunes es realizar fusiones diarias, pero eso depende de la cantidad de usuarios/confirmaciones que utilicen su sucursal.

+0

Si hablas de que A es una sucursal remota y B una local, git pull es suficiente – HackerGil

2

Suponiendo que su llamada para crear B fuera git clone /path/to/server/A, solo tiene que hacer un git pull y listo. Así es como funciona git pull: primero es fetch es los cambios desde el origen (la rama rastreada A en su caso), entonces merge s estos cambios en la rama que rastrea la rama rastreada (B en su caso).

Git Book y Pro Git analizan ese tema en profundidad, por lo que vale la pena leerlo (si no tiene prisa, lea el resto de ellos también).

+0

Oye, solo me pregunto. No estoy seguro de si realmente creé la rama B clonando de A. Acabo de crear una rama 'git branch A' con alguna opción aleatoria, creo. Entonces, si solo hago git pull, git se queja de que 'me pediste que tirara sin decirme con qué rama te quieres fusionar ...' – user482594

+0

@ user482594: 'pull' solo es necesario si quieres obtener datos de una remoto. Si estuvieras en 'A' y acabaras de hacer' git checkout -b B', simplemente puedes 'merge' (mientras estés en' B', escribe 'git merge A'). – eckes

Cuestiones relacionadas