web-dev-qa-db-ja.com

「git pull --ff-only」と「git merge --no-ff」の設定方法

私にとっての典型的なgitワークフローは、リモートリポジトリのクローンを作成し、gitpullを使用して最新の状態に保つことです。プルするときにマージコミットを望まないので、-ff-onlyオプションを使用します。

また、機能作業のためにローカルブランチを作成します。ブランチ履歴を保持したいので、ローカルブランチをローカルクローンにマージして戻すときは、-no-ffオプションを使用します。

デフォルトでこれらのオプションを使用するようにgitを構成するにはどうすればよいですか?現在、私の.gitconfigは次のようになっています。

[merge]
  ff = false
[pull]
  ff = only

ただし、git pull(実際にはgitfetchとgitmerge)は、マージオプションを選択しているため、マージを作成しているようです。

18
Robert Huffman

git-configのマニュアルページpull.ffによると、そうではないはずです。

(...)onlyに設定すると、そのような早送りマージのみが許可されます(コマンドラインから--ff-onlyオプションを指定するのと同じです)。 この設定はプル時にmerge.ffをオーバーライドします

構成pull.ffはGit2.xで導入されたため、Git1.xでは期待どおりに機能しません。おそらくmerge.ff構成を取得し、プルを実行するときにそれを使用します。 。

13
alextercete