为什么默认情况下合并后git会提交?

Wil*_*ill 24 git merge

我对这种行为感到好奇,也许这只是因为我主要来自使用SVN和集市.(我正在学习git与优秀的github接口.)

这对我来说似乎有点直观,好像它会更好

git merge [branch] --no-commit

作为默认设置,鼓励人们确保合并在提交之前按照他们想要的方式进行.

Von*_*onC 27

Linus Torvalds在创建Git时设定的目标是使所有可以自动解决的合并... 快速.查看他2007年的Google Tech Talk:Linus Torvalds on Git(成绩单)
即在不到几秒的时间内完成数百次合并.

因此--no-commit,默认情况下,"pretty"几乎会失败.

随着--no-commit执行合并,但假装的合并失败,不自动提交,给用户提供一个机会来检查和进一步提交之前调整合并结果.

Linus的演讲中摘录(视频):

唯一重要的是你能多快合并.
在git中,你可以合并...我每天多次合并22,000个文件,如果合并时间超过5秒,我会感到不快,所有这些5秒只是下载所有差异,而不是差异,但是两棵树之间的增量,合并本身不到半秒.
而且我不必考虑它.
[...]这种性能实际上改变了你的工作方式.

  • @Will:是的,但不要忘记其他工作流程:在合并之前重新定义你的工作(这将导致快速合并:http://stackoverflow.com/questions/804115/git-rebase-vs- git-merge/804178#804178) (2认同)