He estado usando GitHub durante bastante tiempo y solía empujar mis ramas de características y luego iniciar una Solicitud de extracción que yo mismo fusioné. Descubrí que me ayudó a hacer un seguimiento de dónde fusioné las ramas.
Pero recientemente, he estado leyendo más y más sobre cómo funciona Git y me di cuenta de que puedo usar los merge-commits para referirme cuando fusioné ramas.
Entonces, ¿qué debo hacer al fusionar una rama de características en la maestra:
realizar una confirmación de fusión en la maestra y luego empujarla hacia arriba O empujar la rama local e iniciar una solicitud de extracción?
He leído Presentación de solicitudes de extracción para un equipo de 2 personas: ¿fusionar mis propias solicitudes? y ¿Cuál es el flujo de trabajo con 2 personas en un proyecto y las solicitudes de extracción abierta ¿Debo de una rama en el repositorio oficial o el tenedor? pero ninguno de ellos parece responder a lo que estoy buscando.
fuente
Respuestas:
mecanismo de git-fusión:
Usando
git merge feature
mientras que en la rama principal se fusionefeature
conmaster
y produce unamerge-commit
(si el sarmiento no puede ser reenviado rápido) en la historia de Git. Para forzar unmerge-commit
hecho, use la--no-ff
opción conmerge
.Mecanismo de solicitud de extracción de fusión:
cuando comenzamos una solicitud de extracción en GitHub, se crea un lugar
GitHub Issue
donde las personas pueden hablar y discutir los compromisos en el RP antes de fusionarlo. Cuando un PR se fusiona en GitHub, hace exactamente lo mismo quegit merge feature
.¿Qué tengo que hacer?
Entonces, en lo que respecta a la historia, no hay diferencia entre los dos.
Y en lo que respecta a la contribución, sus contribuyentes no tendrán que hacer nada diferente para las dos situaciones. Son lo mismo (menos la pequeña charla agradable).
Mejores prácticas:
y no pude encontrar las mejores prácticas, pero la lógica dice que los RP no son de mucha ayuda si solo hay una sola persona en el repositorio.
@lxrec y @amon me ayudaron a llegar a esta conclusión.
fuente
git merge
podría no registrar una confirmación de fusión si puede hacer un "avance rápido". Para forzar una confirmación de fusión, puede agregar la--no-ff
opción.Como dijo Ashhar , técnica e históricamente no hay diferencia. Para proyectos con un equipo pequeño, prefiero fusionarme directamente en lugar del paso adicional de crear un RP. Sin embargo, cuando una característica necesita revisión / retroalimentación o cuando es un WIP y más de una persona estará trabajando en ella, tiendo a abrir un RP y agregar una lista de tareas a la descripción del RP.
Tenga en cuenta que
git merge
puede usar el avance rápido si no hay cambios en el maestro, por lo que es posible que desee usarlogit merge --no-ff
. Tiendo a no hacerlo.En resumen, solo use relaciones públicas cuando necesite una discusión. De lo contrario, simplemente fusionar directamente.
fuente