我正在尝试将git merge --no-ff --no-commit
设置为合并的默认行为。
现在我已经阅读了以下问题:
如何使gitmerge';s的默认值是--no-ff--no-commit?
Git:默认;不提交";所有分支的合并行为?
根据这些答案,我在全局配置中添加了以下内容:
[merge]
tool = winmerge
ff = false
commit = false
添加新配置后,没有ff可以正常工作,但它仍然会自动提交。然后我搜索尝试合并文档页面:
https://git-scm.com/docs/merge-config/2.18.0
有merge.ff条目,但没有merge.commit。我目前使用的是git版本2.29.2.windows.2。
我添加了一个解决方法——不提交本地配置合并:
[branch "master"]
mergeoptions = --no-commit
它目前有效,但我希望我的电脑上的所有项目和分支都默认这种行为
所以我的问题如下:
- merge.commit配置真的存在吗?如果是版本问题,哪个版本会允许这样做
- 如果merge.commit不可用,还有什么选择
没有merge.commit
选项:请参阅源代码,在那里您可以看到处理了哪些选项,并观察到缺少merge.commit
选项。2014年也没有这样的选项(如果你愿意,可以克隆并检查Git源代码来验证这一点(。
从那时起,merge.ff
选项就一直存在,但据我所知,merge.commit
从未存在过。当然,您可以运行git merge
以外的命令来开始合并,通过这样做,您可以使该命令提供--no-commit
作为显式参数。但是,请注意,您不能对内置的Git进行别名,因此无法在运行git merge
时创建插入--no-commit
的Git别名。运行git mymerge
并将其设为Git别名,或者运行mymerge
并将其设置为shell别名,但不要运行git merge
。
(当然,您的另一个选择是为每个分支名称设置branch.name.mergeoptions
。(