GIT Rebase una sucursal en la que se queuebora?

Después de leer este artículo, tiene sentido rebasear para recostackr cambios de la twig principal en mi twig de características: flujo de trabajo de Git y preguntas de rebase vs. merge

clone the remote repo git checkout -b my_new_feature ..work and commit some stuff git rebase master ..work and commit some stuff git rebase master ..finish the feature git checkout master git merge my_new_feature 

Esto funciona muy bien si la twig de características es local para mi máquina y puedo reescribir el historial como me plazca.

Pero, ¿qué sucede si queueboro con alguien más en la twig de características? ¿Cómo podemos get los últimos cambios de la twig principal en nuestra twig de características ahora que nuestra twig de características se mantiene en el repository remoto?

Entonces, ¿nos fusionamos? ¿O hay otro método astuto de GIT para hacer esto?

¡Gracias por adelantado!

Si trabajas solo las rebases no hacen nada. No has cometido nada nuevo para dominar.

Su fusión será una fusión de avance rápido y podría hacerlo no verificándola en absoluto con

 git push . HEAD:master 

Ya sea que trabaje con alguien o no, fusionar el trabajo que domina su twig de funciones es una mala práctica. Se llama fusión inversa. La razón por la cual es malo es que ahora no tienes un trabajo atómico. la historia de la maestra ahora está ennetworkingada con su function, lo que hace que trabajar con esta característica, como el rebasado, sea imposible en muchas situaciones.

Debe pensar en su estrategia de ramificación y en lo que quiere lograr. Aquí esta el mio:

http://dymitruk.com/blog/2012/02/05/branch-per-feature/

Puedes ver que cada twig comienza desde el mismo lugar. Tiene una twig de integración separada y una twig candidata de lanzamiento para mezclar y combinar las características que desea sin contaminarlas.

En cuanto a la queueboración en una característica con un colega, depende de qué tan grande es una característica (la granularidad de su trabajo). Si es grande, puede aplicar el process anterior a la function en sí y, por el contrario, bifurcar por tarea.

Si se trata de una function pequeña, puede fusionar o volver a establecer la base en esa twig; no importará demasiado. En este punto, todo se networkinguce a lo que el equipo se siente cómodo.

Hay una solución para su caso sin cambiar a un flujo de trabajo completamente diferente.

En cuanto a get correcciones de su twig principal en twigs de características, como ya descubrió, lo mejor es seleccionar estas confirmaciones particulares. Pero prefiero tener twigs de tema incluso para las revisiones en lugar de corregirlas en la línea principal, de esa forma puedo combinar esas correcciones en cada característica bloqueada por ellas.

Para mantener el historial de desarrollo de características lo más limpio y lineal posible, todos los queueboradores deben usar git pull --rebase para get actualizaciones, de modo que no se git pull --rebase de fusión sin sentido.

Si aún desea volver a establecer una base de funciones de queueboración sobre la twig de desarrollo principal actual (para testings de continuous integration u otros fines) o reescribir su historial de cualquier otra forma, puede hacerlo una vez que la function esté completa / completa, justo antes de la fusión a twig principal, pero debe hacerlo en una nueva sucursal local / privada separada .

A continuación, le mostramos cómo volver a crear sus cambios en el tema (omitir selects de cereza) en una nueva twig de master:

 $ git checkout -b feature_final feature # jump to a new branch for grooming $ git rebase [-i] master # rebase topic changes onto master 

De ahí depende de usted qué hacer con la twig rebasada -push upstream para QA o directamente fusionarse con master (con –no-ff si desea hacerlo explícito en el historial).