【问题标题】:Git or Subversion?Git 还是颠覆?
【发布时间】:2009-02-19 16:25:32
【问题描述】:

假设我正在家里使用 Visual Studio 开始一个新的 Web 项目,即版本控制系统。 Git 或 Subversion 会更好用吗?哪一个的设置复杂度最低?

【问题讨论】:

  • 正如其他人所建议的,您可能也想看看 Mercurial。它与 SVN 一样直观,并为您提供 DVCS 的好处。它也适用于 Windows。
  • 是否需要集成 Visual Studion?
  • Visual Studio 集成不是必需的,而是一个不错的选择。
  • svn与VS集成,git不懂

标签: visual-studio svn git


【解决方案1】:

因为这是你自己玩的,所以我的问题很简单:你知道 Subversion 或 Git 吗?

  • 如果您了解 SVN - 使用 Git。
  • 如果您了解 Git - 请使用 SVN。

如果您也不知道,请使用 SVN。这是一个更好的介绍。

【讨论】:

  • 或者只使用 darcs、mercurial 或 bazaar。 Subversion 和 git 已经非常流行,因此 un1337,如果你使用它们,你也会变成 un1337。
  • 我觉得搞砸了 7,777 个代表很糟糕,但我必须这样做。 +1
  • 我不清楚是什么让 svn 成为更好的介绍?好像只有懂svn或者cvs的人才觉得git不好用。
  • svn 很好用,因为它用 3 或 4 个命令教你版本控制系统应该如何工作。
  • 加上 svn 红皮书真的很特别。
【解决方案2】:

我会选择 Git。掌握基础知识并没有那么糟糕(现在有很多很好的资源,包括 learn.github.com),而且它会得到回报。而且我一直在 Vista 上使用它,没有任何问题。

【讨论】:

  • 在家庭项目中使用 Git 有什么好处?
  • 从本质上讲,它让你不为所动,使版本控制成为“刚刚发生”的事情,而不是你必须工作的事情。即使在家庭项目中,您在分支和整体工作流程方面也会更加敏捷。此外,如果项目扩展,您可以更轻松地让其他人参与进来。
  • 此外,git 不会将 .svn 文件夹放在各处。这使代码库保持清洁。而且,说真的,分支、合并、压缩提交要容易得多。
  • fyi Abizern - Subversion 从 1.7 版中的所有这些 .svn 文件夹中移出:来自subversion.apache.org/docs/release-notes/1.7.html#wc-ng 的发行说明摘录:“工作副本中的每个目录中都没有 .svn 目录,Subversion 1.7 工作副本只有一个 .svn 目录——在工作副本的根目录中。这个目录包括(除其他外)一个 SQLite 支持的数据库,其中包含 Subversion 需要该工作副本的所有元数据。"
【解决方案3】:

根据我的经验,Subversion 对 Windows 更友好,并且对独立开发人员也更直接有用。

另一种可能性是 Perforce,它对 Windows 的友好程度稍差,但功能齐全且相当易于使用,更不用说最多可供两个用户免费使用。

【讨论】:

  • 如果你想要更多 Windows 友好的分布式 VCS,我推荐 Mercurial。龟壳客户端相当不错,并且在大多数情况下运行良好。
  • bazaar 是另一个更好地支持windows 的DVS。没有 Cygwin,没有 Msys,没有 git。
【解决方案4】:

Git 是一种分布式源代码控制设置,由于您是唯一的用户,我无法想象您会从它的功能中受益匪浅。 Subversion(在我看来)更容易设置,所以我建议您使用它。

【讨论】:

  • Git 的断开连接方面对于单个开发人员可能非常有用。我在没有互联网连接的情况下在火车上工作很多......
  • “设置”Git 更简单:“git init”。 Bang,您的存储库和工作树已准备好使用。 :)
  • 他会从缺少 git 的功能中受益吗?
  • 听起来你从未真正尝试过 Git :) 假设你完全忽略了 git 的分布式方面(这并不难),它远没有颠覆那么脑残,尤其是在合并之类的事情上。它在所有操作中的速度也显着加快,灵活性更高。
  • 我是一个顽固的 SVN 用户,对 git 知之甚少,但是 latley 我已经被 SVN 缺乏分布式和合并问题咬了太多次了......我想我'我打算为我的下一个项目研究 git(至少在 SVN 2.0 出来之前)
【解决方案5】:

如果您独自工作并且想要某种易于使用的版本控制,那么请使用 Subversion。它在 Windows 上运行良好,设置存储库只需在空白处单击 Tortoise SVNAnkh SVN 提供了与 Visual Studio 的非常好的集成 - 只要您使用 VS 2005 或更新版本,几乎可以与 TFS 相提并论。

另一方面,Git 比 SVN 更有前途。我会在今年检查它,但第三方工具还没有达到标准。

【讨论】:

    【解决方案6】:

    我会选择Mercurial。它应该类似于 Git(由于 Windows 问题,我永远无法运行它)并且在 Windows 中设置非常容易,并且非常适合“个人”版本控制系统。

    【讨论】:

    • 为此 +1。 Mercurial 允许 DVCS 具有非常简单和直观的颠覆式界面的灵活性。习惯 SVN 的人可以很快适应 HG,反之亦然。我唯一使用 git 的时候是需要它的分支功能,这远远优于 HG 的
    【解决方案7】:

    您决定使用哪一个在很大程度上取决于您现在和未来的需求。 Git 有一个非常好的社区,用GitHub 围绕它建立了一个非常适合共享代码和项目的社区。 SVN 的设置和使用非常简单,但在大型团队中,Git 凭借其分支和合并功能击败了它。如果您有多个人在同一项目上工作,这是理想的选择,无论是在办公室环境中,还是在团队分散的 OSS 意义上。

    如果您需要的只是快速简单的设置和开始工作,以便您可以开始您的项目,那么 SVN 应该没问题。 SVN 还集成到许多编辑器和 IDE 以及许多错误跟踪和持续集成系统中。

    如果您计划或已经有一个团队,Git 的分支和合并设置值得一看。然而,Git 主要是因为还很年轻,所以几乎没有可用的支持

    【讨论】:

      【解决方案8】:

      如果您想要 Visual Studio 集成,那是毫无疑问的。只有 Subversion 具有 Visual Studio 集成(AnkhSVNVisualSVN 和几个允许访问 TortoiseSVN 的脚本)。

      Subversion 拥有如此大量的工具,其中一个最重要的原因是它被设计为一个可供多个客户端使用的稳定库。

      在 git 支持作为某种可重用库提供之前,Git 不太可能在 Visual Studio 中获得相同级别的集成。 (有一个libgit2 的计划可以使这成为现实)。

      【讨论】:

      • 我使用 gitextensions,它有一个 Visual Studio 插件,我个人发现它比 SVN 插件好得多。
      【解决方案9】:

      让我来回答你的问题并提问:

      1. Git 可以在 Windows 上运行吗?
      2. 它有什么相当于乌龟的东西吗? (否则我看不出它在易用性方面如何与 SVN 竞争)

      附带说明:如果它真的是一个单人家庭项目,那么您真的不需要任何源代码控制工具。只需将您的项目放在DropBox 文件夹中即可完成(自动提交、无限修订、取消删除)。 除非你真的认为你需要标签和分支之类的东西。但是对于个人家庭项目......是吗?

      【讨论】:

      • 1 - 是,2 - 还没有,回答你的最后一个问题 - 是的。
      • DropBox 很棒,但 IMO 的修订功能并不能完全胜任管理整个项目的任务。如果您需要将整个目录恢复到较早的状态,则没有一种简单的方法可以做到这一点。 (我只是在我的 DropBox 文件夹中保留了一个 SVN 工作副本,所以我可以两全其美。:))
      • TortoiseSVN 在 XP 上比在 Vista 上要好得多,因为在 XP 上它与 Windows 资源管理器的集成更好。对于它在 Vista 上的作用,我几乎可以直接从命令行使用 SVN。
      • 我已经开始了一些只是“宠物”的项目,这些项目很快就流行起来了,所以我很高兴我从一开始就使用了标准的 VCS。你永远不知道什么时候会发生......所以最好做好准备。
      • 有 TortoiseGit,有 Git Extensions,还有 GitCheetah 的开端
      【解决方案10】:

      您可以在阅读后发表自己的意见:http://whygitisbetterthanx.com

      【讨论】:

        【解决方案11】:

        Git ..................(这些点在那里是因为 SO 不接受 3 个字母的回答) .

        【讨论】:

          【解决方案12】:

          这个问题的一个很好的答案是最近由 Jack Repenning 写的:

          • 如果您对工作的单个、确定的主副本有令人信服的要求,请使用 Subversion。 只要没有失误,您可以使用 Git 来做到这一点-UPS。但是你不能用 Subversion 做任何其他事情(疏忽或没有),像 Sarbanes-Oxley 这样的“强制性要求”更喜欢保证而不是可能性。

          • 如果您计划维护同一产品的并行、大部分共享但永久有些不同的产品线,请使用 Git。 一个常见示例:也许您有一个大型产品为每个客户定制。自定义是永久性的,通常不会在代码行之间共享,但大多数代码对所有人都是通用的。 Git 就是为这种情况而设计的(在 Git 术语中,通用核心的本地自定义,以及偶尔的功能或错误修复贡献备份树)

          • 两者都不是?任你选择,你应该可以使用任何一个工具。*

          完整的博文在这里:http://blog.codesion.com/post/15692788883/subversion-or-git-decisions-decisions

          【讨论】:

            【解决方案13】:

            使用 SVN,您必须设置服务器,在那里创建存储库,签出(空)存储库,添加文件,然后提交。

            使用 Git,您只需要项目根目录中的 git init。然后,您可以根据需要添加和提交文件。

            实际上没有任何想法设置 Subversion 服务器,因为您是唯一一个在源代码上工作的人。与许多人的想法相反,独立项目是分布式版本控制工具的完美搭配。以后扩展您的项目也很容易。

            【讨论】:

            【解决方案14】:

            根据我的经验,Subversion 更容易“理解”,但 Git 更快、更容易参与软件开发最佳实践。作为一名前 CVS 用户,当我开始使用 Subversion 时,它立即对我产生了影响。 Git 进行了一些研究,我仍然需要不时参考手册,但我喜欢在必须维护发布过程时分支和合并代码是多么容易。

            如果您已经熟悉 CVS 并且只需要一些东西来保存您的历史记录和差异,那么 Subversion 会更容易上手。如果您是版本控制的新手,则总体而言,潮流正在转向 DVCS,尤其是 Git,因此总体而言,您可能会从中获得更多收益。

            我确实建议您查看托管提供商,这样您就不必担心设置 Subversion 服务器,或者您可以为 Git 数据提供备份位置。您可以通过 Google 搜索“subversion hosting”或“git hosting”来查看该领域的主要提供商。

            【讨论】:

              【解决方案15】:

              如果您打算将项目放在 U 盘上,请使用 Subversion。 Windows XP 在将大量小文件缓存在 USB 记忆棒上时真的非常非常糟糕。 Git 为提交操作编写了许多小文件,这在 Windows 上需要很长时间。

              [编辑] Windows XP 和 USB 记忆棒上的文件的问题是缓存(或缺少缓存)。为防止数据丢失,XP 将始终在 USB 记忆棒上同步写入文件(因此只有在 FS 报告所有块都已写入记忆棒之后才会返回任何写入)。再加上 U 盘在处理小文件时速度很慢(初始化磨损级别管理需要大量开销),这会导致任何类型的写入大量小文件的应用程序的性能非常差。

              [EDIT2] 如果您将 SVN 结帐放在 U 盘上,您还会有很多小文件(尤其是在 .svn 目录中)。因此,这种情况下的解决方案是将 Subversion 存储库(“服务器”)放在 USB 驱动器上。存储库仅使用一堆大文件(如果您使用数据库选项而不是基于文件的选项:svnadmin create --fs-type bdb)。这避免了“许多小文件问题”。当前版本的 Git 无法实现相同的目标。

              【讨论】:

              • 这里没有问题:ZIP on the fly 对这种现象产生了奇效。此外,如果你要备份一个 Subversion 工作文件夹,你会遇到同样的问题,因为 .svn 文件夹保留了每个文件的副本。
              • @Johan:使用 SVN,您可以将存储库保存在仅包含几个大文件的存储库中。
              • 使用 Git,您可以放置​​ additional 存储库以在 USB 记忆棒上交换信息(裸机,即没有工作树),或者您可以使用 git-bundle,它是用于sneakernetting 的。
              • 当我尝试时,git-bundle 不可用。而且我已经说过为什么即使是裸存储库在 Windows XP 上也很慢。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2010-11-27
              • 1970-01-01
              • 1970-01-01
              • 2012-08-14
              • 1970-01-01
              • 2012-03-08
              • 2010-10-18
              相关资源
              最近更新 更多