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


对我来说,典型的git工作流是克隆远程存储库并使用git pull使其保持最新。我拉的时候不想要合并提交,所以我使用--ff-only选项。

我还为功能工作设立了本地分支机构。我想保留分支历史记录,所以当我将本地分支合并回我的本地克隆时,我使用--no-ff选项。

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

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

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


11280
2018-02-09 16:07


起源



答案:


据说不应该是这种情况 git-config 手册页 上 pull.ff

(...)当设置为only时,仅允许此类快进合并(相当于从命令行提供-ff-only选项)。 拉动时,此设置会覆盖merge.ff

配置 pull.ff 已经在Git 2.x中引入了,所以它在Git 1.x上不会像预期的那样工作 - 它可能会拿起它 merge.ff 配置和使用时做拉。


9
2018-02-09 17:19



哈!我知道这一点对我有用。我最近重新安装了Linux Mint,完全忘了检查git的版本。 '官方'存储库仍在1.9! - Robert Huffman
由于某种原因,pull.ff未在制表符完成中列出,但它的工作原理完全相同。 - sashoalm


答案:


据说不应该是这种情况 git-config 手册页 上 pull.ff

(...)当设置为only时,仅允许此类快进合并(相当于从命令行提供-ff-only选项)。 拉动时,此设置会覆盖merge.ff

配置 pull.ff 已经在Git 2.x中引入了,所以它在Git 1.x上不会像预期的那样工作 - 它可能会拿起它 merge.ff 配置和使用时做拉。


9
2018-02-09 17:19



哈!我知道这一点对我有用。我最近重新安装了Linux Mint,完全忘了检查git的版本。 '官方'存储库仍在1.9! - Robert Huffman
由于某种原因,pull.ff未在制表符完成中列出,但它的工作原理完全相同。 - sashoalm