comandos - ¿Cómo funciona uno en una nueva rama de git que depende de otra rama de git que aún no está fusionada?
git push (3)
Aquí está mi escenario:
Mi proyecto está siguiendo el patrón de ramificación del tema.
Creo una rama para solucionar algunos problemas, llamemos a esta rama problem_fixes. Realizo mis cambios y envío una solicitud de extracción.
Necesito comenzar a trabajar en una nueva característica, así que creo una segunda rama llamada my_feature y confío un montón de cambios.
En algún momento, me doy cuenta de que my_feature depende de los problemas_fixes que aún no se han aceptado y fusionado (la rama my_feature se basa en algunos de los arreglos de la primera rama y no puedo avanzar sin ellos).
Aparte de acosar a mi líder de proyecto para aceptar y fusionar mi primera sucursal más rápido, ¿cuál es el mejor proceso a seguir aquí?
Me pregunto si necesito iniciar una tercera rama nueva basada en problem_fixes (en lugar de master) y fusionar mis confirmaciones con my_feature? O estaría bien si simplemente fusiono problem_fixes en my_feature y continúo trabajando - asumiendo que problem_fixes se fusiona primero en master, cuando my_feature se fusiona, en teoría debería estar bien (?)
Crea tu rama de tema fuera de la primera rama. Tan pronto como el primero se fusione con el maestro, se puede volver a hacer una base de eso, y suponiendo que no se haya cambiado demasiado, no debería ser un problema.
Si no se cambian las confirmaciones de la primera rama, su nueva rama se apilará cuidadosamente encima de eso, y si las confirmaciones se cambian (aplastadas, editadas o lo que sea), siempre puede hacer una rebase interactiva de la segunda rama y editarla. Se ve bien una vez que la primera rama se ha fusionado.
En un caso en el que comencé a trabajar desde el master
, me di cuenta después de que necesito algunos cambios de otra rama en los que no se puede fusionar porque todavía tienen algunas cosas importantes (pero la mierda que necesito está completa) lo que haría en ese caso podría ser
Fusionar su rama en la mia
Terminar mi característica
Espera a que el otro desarrollador termine su función.
Se funden en
master
Escojo mis compromisos para el compromiso de fusión en
master
¿Qué piensan ustedes? Podría ser una forma de salir de una situación particularmente dolorosa, aunque implica perder el tiempo con la selección de cerezas, que la mayoría de la gente piensa que es un dolor en el culo como rebasar.
Sí, creo que estás en el camino correcto. Lo que haría es crear una nueva rama my_feature
, tal vez trabajar un poco. Cuando me doy cuenta de que my_feature
depende de los problem_fixes
de los problem_fixes
, fusione esa rama. Esto podría suceder de inmediato si sabe que la necesitará. Luego, cuando my_feature
se fusione en master, ya tendrá los cambios que necesita.
Tenga en cuenta que siempre que tenga un procedimiento de revisión de código robusto, si intenta combinar my_feature
en master antes de problem_fixes
, lo notará en ese momento.