我正在考虑将我的服务器上的svn存储库转换为git,但我不确定对我有什么好处,因为我已经使用SmartGit/hg来创建本地git存储库并提交所有本地git已经承诺过了。
据我所见,这里我没有必要迁移到git。
那么对于我和我的同事来说,只使用SmartGit / hg会有什么好处呢?
答案 0 :(得分:1)
我不熟悉SmartGit,但我知道使用git作为SVN客户端时常见的缺点,所以我会谈谈这个。
切换到远程git存储库可以让您有效地使用branch
和merge
繁重的工作流程。
这是什么意思?
在SVN中,您通常只有一个分支,所有工作都会被提交;另一方面,git可以更轻松地进行分支和合并,从而可以有效地使用具有多个分支的工作流。
例如,您可以使用master
分支和development
分支。只有稳定版本才会合并到master
,而开发过程则在development
分支上进行。此外,您可以创建绑定到特定主题的feature
个分支,并且所有提交都在此feature
分支上完成,直到主题完成为止;然后,您可以将该功能引入的更改合并到development
分支中,稍后再合并到master
分支中。
为什么不能使用SVN存储库?
Git处理合并的方式与SVN不同;在Git中,merge是一个具有多个父提交的提交。这在SVN中是不可能的,在SVN中,每个提交都有一个父,永远不会更多。
因此,如果将合并提交推送到SVN存储库,则合并历史记录将丢失。虽然您将保留合并历史记录,但您的同事只会看到一个大提交,它会引入合并分支的提交中的所有更改。你丢失了信息
这就是为什么建议在与SVN存储库交互时仅使用rebase
而不是merge
的原因。
这是使用git与远程git存储库而不是SVN存储库的一个优点。如果您搜索,可以找到更多。
答案 1 :(得分:1)
使用纯Git解决方案,您将获得以下好处