autosetuprebase vs autosetupmerge 質問する

autosetuprebase vs autosetupmerge 質問する

グローバル ファイルをいじっていたら.gitconfig、次のような結果になったことに気付きました。

[branch]
  autosetupmerge = always
  autosetuprebase = always

それは直感に反するように思えましたが、少し調べた後でも、両方が必要なのか、それとも削除してautosetupmerge保持するだけで十分なのか、まだわかりませautosetuprebaseん。私が取り組んでいるほとんどのプロジェクトでは、ダウンストリームからアップストリームへの直接的なフローがあるため、ブランチを扱うときは通常、リベースが好まれます。

ベストアンサー1

ここで直感に反するのは、これらの設定の名前です。同じ機能を参照しているように見えますが、実際にはそうではありません。

  • autosetupmergeおよびがオプションを暗示するgit branchかどうかを制御します。つまり、 の設定により、 git checkout -b--trackalways
    • git checkout branchnamebranchnameリモートに存在するがローカルに存在しない場合は、branchnameリモートの対応するものを追跡する
    • git checkout -b newbranchnewbranchこのコマンドを発行する前にチェックアウトしたブランチを追跡する新しいブランチを作成します。
  • autosetuprebaseは、新しいブランチを にリベースするように設定するかどうかを制御します。つまりgit pull、 をalways設定すると、 がマージではなくリベースを常に実行するようにブランチが設定されますgit pull。(このオプションを変更しても、既存のブランチの構成は保持されることに注意してください。)

したがって、 と の両方を持つことは完全に理にかなっていますautosetupmerge = alwaysautosetuprebase = always実際、私もそれを持っています。

おすすめ記事