¿Cómo hacer un flujo lineal de git?

¿Cómo hacer un flujo lineal de git?

Mi tienda de desarrollo tiene un flujo de git preferido como el siguiente:

  1. Consulte una rama de emisión ( issue9).
  2. Resolver el problema ( serve over port 80).
  3. Comprometerse ( git commit...).
  4. Fusione la rama de emisión en una rama de característica local ( cal).
  5. Empuje la rama de funciones locales a origin.

    • Todas las fusiones deben realizarse en avance rápido, si es posible.

Esta última limitación me hace arrancarme los pelos; en la práctica, puedo hacer lo siguiente:

  1. Fusione la confirmación del problema en la rama de funciones locales.
  2. Entonces git se niega a enviar al origen debido a cambios remotos.
  3. Extraiga cambios remotos a la rama de funciones local.
  4. Git genera automáticamente una confirmación de fusión separada.

O

  1. Extraiga cambios remotos a la rama de funciones local.
  2. Git genera automáticamente una confirmación de fusión separada.

¿Existe alguna configuración que pueda modificar en la configuración global/local de git para lograr este comportamiento? Cuando intento hacer esto, termino arruinando git y teniendo que ejecutar cuatro de cinco comandos de git para limpiarlo.

Sólo quiero emacs && git commit && git checkout cal && git merge issue9 && git push origin cal, ¿sabes?

Respuesta1

Para tiradas únicas, puedes utilizar git pull --rebase:

$ git commit
$ git checkout cal
$ git merge issue9
$ git pull --rebase
$ git push origin cal

Para configurar git para que siempre se comporte de esta manera git pull, haz que ~/.gitconfigse vea así:

[push]
    default = matching
[branch]
    autosetuprebase = always
[color]
    status = auto
[merge]
    ff = true

información relacionada