我为什么要使用git而不是svn?

时间:2009-04-11 13:08:00

标签: svn git version-control

我习惯使用Visual Studio + C#,之前一直在使用svn,但目前还没有,所以我想把我的代码再次放在源代码的控件上。

最近我听说过git,我一直在阅读git wiki和this以及this,我读过没有像TortoiseSvn那样的git客户端,或者至少我是没有找到'。

我的问题是:

  • git比svn
  • 有什么好处
  • 我在哪里可以找到易于使用git的前端。
  • git是否有使用Visual Studio的插件(ANKH)?
  • 我还能在哪里找到git开始的资源?

9 个答案:

答案 0 :(得分:23)

这里是我对git vs. svn的个人经历:

  • Git与SVN: git跟踪源树的状态,历史和完整性。 SVN只跟踪状态。

特别是在合并时,git广泛使用存储的历史记录(跨重命名和合并)可以很方便地做出更明智的决策,从而减少冲突。

通过存储库拥有完整的,可加密验证的完整性链有助于在底层系统中建立信任,或检测它们何时失败。在缺点方面,创建“干净”补丁可能很复杂。拥有合适的工作流程有助于。

最后,git在默认情况下在本地运行,与SVN相比,它具有令人难以置信的巨大提升,SVN几乎可以用于任何操作的中央仓库。

  • 软件:请参阅this question,有几个独立的GUI可用于处理repo,历史浏览器和shell扩展。

  • Studio插件: GitExtensions有一个Visual Studio 2005和2008插件。

  • 文档:从GIT User's Manual开始。有关git-scm.com上的教程和书籍的更多链接。

答案 1 :(得分:8)

GIT中有一个与龟类相关的question相关工具。

GIT相对于SVN的优势在overover进行了讨论,因此这里不应该有人详细说明

至于Visual Studio插件,我认为在相当长的一段时间内不存在或将存在。也许我在这里错过了一些东西。

尝试使用here获取有关如何在Windows中开始使用git的良好指南

至于我完全个人的品味和观点,我继续坚持svn基于我对我的版本控制的个人要求,并且我认为svn在其他级别的工具和社区支持。另外我认为svn非常成熟,并不一定意味着git无法完成工作。

答案 2 :(得分:8)

我不想讨论git vs svn的优点和缺点,但这里有一组简单的比较: - Why Git is better than X

一些好的Git资源:

  1. Git Ready。一种博客,关于git的初学者,中级和高级用法的帖子很少。
  2. Git Magic。很好地了解你能做些什么。
  3. GitCasts screencasts - 没有什么比看到它在行动中帮助你理解它的力量了。包括有用的Git On Windows截屏视频。
  4. 玩得开心!

答案 3 :(得分:5)

TortoiseGit可用 - 只是谷歌它(我不记得URL)和:

  • 分发后,您无需一直连接到服务器,只需在本地工作,并在需要时push工作。

  • 非常快,不占用太多带宽

  • 而且,经典,如果它对Linus来说足够好,那对你来说已经足够了:)。

更新:Link to TortoiseGit

答案 4 :(得分:3)

我没有使用过git,但是我使用了svn和bazaar(在哲学上与git相似),所以我可以用一般的方式回答你。

所谓的分布式版本控制系统(DVCS)的优势在于,repo和代码在您的机器上,并且您不依赖于远程仓库进行操作。每个开发人员都有一个“分支”,他自己的repo副本。您可以提交,还原,检查以前的修订,而无需连接到网络。存储库的官方性是通过人类协议授予的,而不是技术设置。在svn中,你只有一个回购,这是_the_repo_你和所有其他人所承诺的。在DVCS中,您承诺使用自己的仓库,而另一个开发商则使用自己的仓库,并且每个人都可以随心所欲地将他的修改推送到官方设计的仓库。

另一个明显的优势是DVCS中的操作快速,快速。当你开始在你的回购中拥有很多东西时,svn会变得非常慢。这很快就会变得烦人。

在负面,DVCS更难以使用,但如果需要,您可以将DVCS用作集中式VCS。

答案 5 :(得分:2)

我不确定TortoiseGIT在这个阶段的稳定性是什么,当你谈论与Explorer密切结合的东西时,这是一个重要的考虑因素。任何人都能说到这个吗?

另外请记住,如果您正在寻找分布式VCS的好处,那么git不是唯一的选择。 Git具有非常强大且非常复杂的双重优点。您可能会发现另一个DVCS(例如BazaarMercurial)可以更轻松地过渡到分布式系统的优势。两人都有tortoise interfaces正在开发中,但同样,我不确定它们的稳定性。 (虽然Bazaar包含在他们的windows包中,所以你会认为它处于一个相当不错的阶段。)

快速搜索也出现VisualHgBzr-VisualStudio,但我不知道他们是否准备好用于愤怒。注意事项。

答案 6 :(得分:2)

  

git比svn有什么好处

在决定是否使用Git或SVN之前,请确保您完全了解您的要求并了解Git和SVN提供和支持的内容。不幸的是,就我最近在http://svnvsgit.com/发现的情况而言,Git和SVN主题存在很多不公平的偏见。

让我引用其中一位回答者(@Konstantinos):

  

GIT优于SVN的优势一再被讨论,但事实并非如此   有人应该在这里详细说明的事情

这个问题是在近7年前被问到的。但这个话题至少仍然有点热或热。我最近偶然发现了http://svnvsgit.com页面,我发现确实大多数Git和SVN在互联网上的比较和测试是基于一些奇怪的知识产权,例如关于Mozilla存储库的知识,我感到有点沮丧。 SVN非常大。这根本不是真的,http://git.or.cz/gitwiki/GitSvnComparsion中描述的大多数观点都是不公平或错误的。

或者这里引用@DavidSchmitt(回答者之一):

  

Git vs. SVN:git跟踪源的状态,历史和完整性   树。 SVN只跟踪状态。

SVN和Git都能确保数据完整性(SVN可以更好地完成IMO)。跟踪历史和状态。

SVN和Git之间唯一真正的区别是Subversion是集中式的,而Git是分散的。 Subversion支持Git无法通过设计支持的一些概念,工作流程和案例。与此同时,Git的脱节性质对某人来说可能是一个重大的好处。

明智地选择!

答案 7 :(得分:1)

Git现在似乎是版本控制的行业标准,取代了SVN和CVS等。从用户的角度来看,Git产生了更多的功能,并有助于比SVN更好地管理代码更改。由于GitHubBitBucket等网站而不需要您自己的服务器,因此设置存储库也更容易。

Git很容易在命令行中运行(远比SVN更多的helfpul命令)。还有一系列优秀的GUI程序,有助于为您的Git仓库提供一个漂亮的前端,GitHub DesktopSourceTree来命名一对。

答案 8 :(得分:0)

正如其他人指出的那样,git更快更稳定。它是分布式的,而不是集中的,在svn中,如果你弄乱了中央仓库,你会失去一切。根据我的经验,当您将代码与git合并时,问题就更少了。

我不喜欢只有一件事。这是你不能用git下载存储库的一部分。如果您只需要一个文件夹,则需要下载所有的回购。你可以用svn。

来做到这一点