Como fazer o fluxo linear do git?

Como fazer o fluxo linear do git?

Minha loja de desenvolvimento tem um fluxo git preferido assim:

  1. Faça check-out de uma ramificação de problema ( issue9).
  2. Resolva o problema ( serve over port 80).
  3. Comprometer-se ( git commit...).
  4. Mesclar a ramificação do problema em uma ramificação do recurso local ( cal).
  5. Envie a ramificação do recurso local para origin.

    • Todas as mesclagens devem ser aceleradas, se possível.

Esta última restrição está me fazendo arrancar os cabelos – na prática, posso:

  1. Mesclar o commit do problema na ramificação do recurso local.
  2. Depois disso, o git se recusa a enviar para a origem, devido a alterações remotas.
  3. Extraia alterações remotas para a ramificação de recurso local.
  4. O Git gera automaticamente um commit de mesclagem separado.

OU

  1. Extraia alterações remotas para a ramificação de recurso local.
  2. O Git gera automaticamente um commit de mesclagem separado.

Existe uma configuração que eu possa ajustar na configuração global/local do git para obter esse comportamento? Quando tento fazer isso, acabo bagunçando o git e tendo que executar quatro dos cinco comandos do git para limpá-lo.

Eu só quero emacs && git commit && git checkout cal && git merge issue9 && git push origin cal, sabe?

Responder1

Para puxadas únicas, você pode usar git pull --rebase:

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

Para configurar o git para sempre se comportar dessa maneira git pull, deixe sua ~/.gitconfigaparência assim:

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

informação relacionada