防止git在合并后自动提交:---默认情况下不提交

防止git在合并后自动提交:---默认情况下不提交,git,merge,commit,config,Git,Merge,Commit,Config,我最近从bzr转到Git,虽然我已经习惯了这种差异,但有一件事我想知道它是否可能: 在bzr中,合并时没有隐式提交。这背后的原因是,虽然合并在技术上可能是成功的,但在上下文上可能是不正确的,也就是说,并不是所有的单元测试都在合并后通过,所以我可能需要修改一些东西来进行正确的合并 我读了Git文档,认为我可以用一个别名来实现这一点,但它不起作用: [alias] merge = 'merge --no-commit' 虽然我可以为no-commit-merge单独命名,但我宁愿将其设置为默认行

我最近从bzr转到Git,虽然我已经习惯了这种差异,但有一件事我想知道它是否可能:

在bzr中,合并时没有隐式提交。这背后的原因是,虽然合并在技术上可能是成功的,但在上下文上可能是不正确的,也就是说,并不是所有的单元测试都在合并后通过,所以我可能需要修改一些东西来进行正确的合并

我读了Git文档,认为我可以用一个别名来实现这一点,但它不起作用:

[alias] 
merge = 'merge --no-commit'
虽然我可以为no-commit-merge单独命名,但我宁愿将其设置为默认行为

其他人建议我在重新合并之前与master“重新设置基础”。这将创建一个快进合并,并将使我有机会在将其作为主线的一部分之前测试上下文中的更改,但我更希望尽可能避免重新基址

那么,是否可以将默认合并行为更改为-no commit?

您可以使用no commit标志适当地设置branch..mergeoptions配置,以便在默认情况下执行此操作:

分支..合并选项

设置合并到分支的默认选项。语法和语法 支持的选项与git merge的选项相同,但是 当前不支持包含空格字符的值


是否可以对每个存储库中的所有分支进行全局设置?@darkestfright-这是我唯一能找到的。当然,您可以通过使用全局配置应用于所有repo,但我认为您必须为单个分支提供支持。也就是说,如果您将别名命名为其他名称,那么您的别名就可以正常工作。