No quiero terminar con 82 ramas de funciones dando vueltas , así que me pregunto cuáles son los posibles inconvenientes de eliminar simplemente la rama de funciones tan pronto como la fusione para dominar.
Flujo de trabajo:
git co -b feat-xyz
hack hack
git ci
hack some more
git ci
git co master
git merge feat-xyz
smoke test
git br -d feat-xyz
¿Algún problema aquí?
git
version-control
branch
bstpierre
fuente
fuente
git reflog
. EntoncesRespuestas:
Eliminar después de fusionar es la forma habitual. Es por eso que
git branch -d yourbranchname
verifica para asegurarse de que la rama esté completamente fusionada antes de que se elimine.Hay algunas razones en las que puedo pensar para mantener una sucursal: es posible que desee conservarla en caso de que vuelvan a aparecer errores una vez que llegue a producción, o es posible que desee un registro histórico.
En cualquier caso, tiene la opción de etiquetar el encabezado de la rama antes de eliminarlo. Una etiqueta es como una rama en el sentido de que es un puntero a una confirmación, excepto por algunas diferencias menores: 1) porcelain generalmente no muestra etiquetas en comandos exploratorios como git show-branch o tab-auto complete en el pago, 2) comprobar uno lo coloca en un HEAD independiente (no ref) 3) puede dejar un " mensaje de etiquetado ", que hace que la etiqueta se guarde como un objeto en el almacén de objetos como una confirmación.
De esta manera, preserva el historial, y si alguna vez necesita corregir un error, le recomiendo que cree una nueva rama del maestro para corregirlo.
fuente
Elimino después de la fusión, pero siempre hago una
git merge --no-ff
, para evitar el avance rápido para que el historial de la rama sea visible en el gráfico. Me gusta tener el historial de dónde se apartó la rama de funciones de la rama de desarrollo y dónde se unió:Esto está tomado de Un exitoso modelo de ramificación de Git de Vincent Driessen, un flujo de trabajo muy agradable para usar con git que aplico para la mayoría de mis proyectos.
fuente
merge --no-ff
vuelvo a master porque, como dices, puedes ver el historial.Puedo pensar en dos razones por las que es posible que desee mantener una rama de función por un tiempo:
En la práctica, la mayoría de las veces, eliminar después de fusionar está bien.
fuente
El flujo de trabajo típico será
fuente
Creo que ese es el flujo de trabajo típico (eliminar después de fusionar)
EDITAR Entonces, en lugar de fusionar, al menos para las ramas de corta duración, creo que la idea es volver a basarlas en el maestro. luego terminas con un historial de cambios lineal y toda la rama se convierte en parte del tronco principal. en este caso, tiene todos los cambios allí, por lo que claramente no necesita una copia.
fuente