为什么默认情况下合并后git会提交?
我很好奇这种行为,也许只是因为我主要来自SVN和集市。 (我正在学习git与优秀的github进行交互。)
这对我来说似乎不直观,好像它会更好
git merge [branch] --no-commit
默认情况下,鼓励人们确保合并按照他们所需的方式进行,然后再提交。
Linus Torvalds在创建Git时设定的目标是让所有可以自动解决的合并...... FAST 。 查看他的2007 Google技术讲座:Linus Torvalds on Git(成绩单)
即在不到几秒的时间内完成数百次合并。
所以默认情况下“ --no-commit
”几乎可以击败这个目的。
使用--no-commit
执行合并,但假装合并失败并且不自动提交,以使用户有机会在提交之前检查并进一步调整合并结果。
从Linus的演讲中摘录(视频):
唯一重要的是你可以合并多快 。
在git中,你可以合并......我每天合并多达22,000个文件,如果一个合并需要超过5秒钟,我会感到不快,所有这5秒只是下载所有的差异,而不是差异,但它的差异两棵树之间的三角洲,合并本身不到半秒钟。
我不必考虑它。
[...]这种表现实际上改变了你的工作方式。