如何配置“git pull --ff-only”和“git merge --no-ff”

32

对我来说,典型的git工作流程是克隆一个远程仓库,并使用git pull保持最新状态。我不想在拉取时出现合并提交,所以我使用--ff-only选项。

我还会为功能性工作创建本地分支。我希望保留分支历史记录,因此当我将本地分支合并回我的本地克隆时,我使用--no-ff选项。

如何配置git默认使用这些选项?目前我的.gitconfig看起来像这样:

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

然而,git pull(实际上是git fetch和git merge)似乎正在选择合并选项,因此创建了合并。

1个回答

25
根据在git-config手册页中关于pull.ff的说明,不应该是这种情况:

(...) 当设置为only时,只允许此类快进合并(等同于从命令行给出--ff-only选项)。在进行Pull操作时,此设置会覆盖merge.ff。

Git 2.x引入了pull.ff配置,因此在Git 1.x上它不能像期望的那样工作 —— 它可能会使用merge.ff配置来执行Pull操作。


3
哈!我知道这个曾经对我有用过。最近我重新安装了Linux Mint,完全忘记检查git的版本。 "官方" 库仍然停留在1.9! - Robert Huffman
1
由于某种原因,pull.ff在选项补全中没有列出,但它仍然可以正常工作。 - sashoalm
2
这个.ff选项有分支版本吗?类似于branch.<name>.mergeOptions这样的东西? - Franklin Yu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接