正如标题所暗示的那样,我很好奇为什么有这么多人吹捧Git是比SVN分支/合并更好的选择。我之所以好奇,主要是因为SVN合并很糟糕,我想要一个替代的解决方案。
Git如何更好地处理合并?它怎麽工作?
例如,在SVN中,如果我有以下行:
你好,世界!
然后user1将其更改为:
Hello World!1
然后user2将其更改为:
Hello World!12
然后user2提交,然后user1提交,SVN会给你一个冲突。Git能解决这么简单的问题吗?
发布于 2010-04-23 01:21:34
不过,在处理可解决的冲突方面,Git可能比SVN更好。它的主要合并策略是递归的,即找到更改同一文件的两个提交的共同祖先,并执行三向合并。它还具有一些内置功能,用于记录和重用冲突解决方案(git-rerere)以及用于特殊情况的各种其他merge strategies。
Git的历史模型(有向无环图)预计会有这样的提交。一直都是。(是的,有时会有冲突,但它们是真正的冲突,而不是无法处理合并。)
另一方面,SVN只是尝试跟踪合并发生的位置,但其模型本质上仍然是线性的。历史记录仍然只有一个提交字符串,合并跟踪信息提供了额外的帮助。据我所知,SVN并不总是能正确处理更复杂的合并模式。(一个示例是反射合并-将A合并到B中,然后将B合并到A中。)
https://stackoverflow.com/questions/2692950
复制相似问题