He estado usando GitHub durante bastante tiempo y normalmente solía impulsar mis ramas de características y luego iniciar una Pull Request que yo mismo fusioné. Descubrí que me ayudó a realizar 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 merge-commits para referirme a cuando fusioné ramas.

Entonces, ¿qué debo hacer al fusionar una rama de función en la maestra?
Realizar una combinación de confirmación en la maestra y luego empujarla en sentido ascendente O ¿Empujar la sucursal 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 ¿Debo abrir solicitudes de extracción desde una sucursal en el repositorio oficial o en mi bifurcación? pero ninguno de ellos parece responder lo que estoy buscando.

Comentarios

  • ¿Qué crees exactamente que falta en esas respuestas?
  • El primero habla de ello desde el sentido de que las solicitudes de extracción están destinadas a ser revisadas por pares. El segundo ofrece un flujo de trabajo. El tercero no está ' ni siquiera relacionado.
  • Estoy analizando esto en una Mejores prácticas o Cómo mantener un buen historial de git punto de vista.
  • Cuando fusiono un PR, lo hago fusionando la rama localmente. Esto me permite asegurarme de que la combinación se aplique de forma limpia y volver a ejecutar las pruebas antes de publicar el resultado. Las solicitudes de extracción de GitHub ' s son solo una formalización de este flujo de trabajo, Git en sí no tiene un concepto de RP.
  • Cuando un RP se fusiona, produce una fusión commit en master, así que no ' creo que esto haga alguna diferencia en el historial de git. Por lo tanto, no ' creo que haya alguna razón para usar uno u otro aparte de su preferencia personal entre la línea de comandos y la interfaz de usuario de Github.

Respuesta

mecanismo git-merge:
El uso de git merge feature mientras está en master fusiona la rama feature a master y produce un merge-commit (si la rama no se puede reenviar rápidamente) en el historial de git. Para forzar la creación de una merge-commit, use la opción --no-ff con merge.

Mecanismo de solicitud de extracción de fusión:
Cuando iniciamos una solicitud de extracción en GitHub, crea un GitHub Issue donde la gente puede hablar y discutir las confirmaciones en el PR antes de fusionarlo. Cuando un PR se fusiona en GitHub, hace exactamente lo mismo que git merge feature.

¿Qué debo 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 hacer algo diferente para las dos situaciones. Son lo mismo (menos la agradable charla).

Prácticas recomendadas:
Y no pude encontrar las mejores prácticas, pero la lógica dice que las relaciones públicas no son muy útiles si solo hay un contribuyente en un repositorio.

@lxrec y @amon me ayudaron a llegar a esta conclusión.

Comentarios

  • Consejo: git merge puede que no registre una confirmación de fusión si puede hacer un «avance rápido». Para forzar un compromiso de fusión, puede agregar la opción --no-ff.
  • Prefiero hacer git-merge en local en lugar de hacerlo en githuib.com, si tendría que hacer algo así en github.com Preferiría no hacerlo directamente en la rama maestra, preferiría tomar la rama no maestra que primero se puede configurar en modo de prueba antes de ponerla a disposición para producción.

Respuesta

Como dijo Ashhar , técnica e históricamente no hay diferencia. Para proyectos con una equipo pequeño Prefiero fusionarme directamente en lugar del paso adicional de crear un PR. Sin embargo, cuando una función necesita revisión / comentarios o cuando es un WIP y más de una persona estará trabajando en ella, tiendo a abrir un PR y agregar un lista de tareas a la descripción del RP.

Tenga en cuenta que git merge podría usar el avance rápido si no hay cambios en el maestro, por lo que es posible que desee usar git merge --no-ff. Tiendo a no hacerlo.

En resumen, solo use relaciones públicas s cuando necesita una discusión. De lo contrario, solo fusiona directamente.

Comentarios

  • Es ' también vale la pena mencionar que la discusión y los comentarios sobre una solicitud de extracción pueden proceden de fuentes automatizadas y de miembros del equipo. Si tiene un servidor de CI configurado, puede proporcionar resultados de compilación y prueba para que nunca fusione algo que rompa la compilación en el maestro.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *