線形 Git フローを実行するにはどうすればよいでしょうか?

線形 Git フローを実行するにはどうすればよいでしょうか?

私の開発ショップでは、次のような Git フローを推奨しています。

  1. 問題ブランチ ( issue9) をチェックアウトします。
  2. 問題(serve over port 80)を解決します。
  3. 専念 (git commit...)。
  4. 問題ブランチをローカル機能ブランチ ( cal) にマージします。
  5. ローカル機能ブランチを にプッシュしますorigin

    • 可能であれば、すべてのマージを早送りする必要があります。

この最後の制約は私を困惑させています。実際には、次のいずれかが可能です。

  1. 問題コミットをローカル機能ブランチにマージします。
  2. すると、リモートの変更により、git は origin へのプッシュを拒否します。
  3. リモートの変更をローカル機能ブランチにプルします。
  4. Git は自動的に別のマージコミットを生成します。

または

  1. リモートの変更をローカル機能ブランチにプルします。
  2. Git は自動的に別のマージコミットを生成します。

この動作を実現するために、グローバル/ローカルの git 構成で微調整できる設定はありますか? これを実行しようとすると、git が台無しになり、クリーンアップするために 4 つまたは 5 つの git コマンドを実行する必要があります。

ただ、そうしたいだけなんですemacs && git commit && git checkout cal && git merge issue9 && git push origin cal、分かりますか?

答え1

1 回限りのプルの場合は、以下を使用できますgit pull --rebase

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

git が常にこのように動作するように設定するにはgit pull~/.gitconfig次のようにします。

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

関連情報