从git-over-svn迁移到GIT的好处

时间:2014-06-18 12:21:52

标签: git svn git-svn smartgit

我正在考虑将我的服务器上的svn存储库转换为git,但我不确定对我有什么好处,因为我已经使用SmartGit/hg来创建本地git存储库并提交所有本地git已经承诺过了。

据我所见,这里我没有必要迁移到git。

那么对于我和我的同事来说,只使用SmartGit / hg会有什么好处呢?

2 个答案:

答案 0 :(得分:1)

我不熟悉SmartGit,但我知道使用git作为SVN客户端时常见的缺点,所以我会谈谈这个。

切换到远程git存储库可以让您有效地使用branchmerge繁重的工作流程。

这是什么意思?

在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解决方案,您将获得以下好处

  • 链中较少的链接(1优于3)是更常见的系统可靠性
  • 避免使用外国系统意味着无需翻译数据,在系统之间传输(减少失真的可能性)