【问题标题】:Getting started with Version Control System开始使用版本控制系统
【发布时间】:2010-09-05 09:12:44
【问题描述】:

我需要实施版本控制,即使只是我在家进行的开发。在过去的几年里,我读到了关于颠覆是多么伟大的文章,并且正准备专注于学习这一点,直到我听说 Git 是即将到来的版本控制系统。

鉴于这种情况,我是否应该推迟一下,看看哪一个排在首位?它们的相对优势是什么?

我注意到 Git 的一个问题是,功能齐全的 GUI 并不多,这对我团队中的许多用户都很重要。

另外,不介意关于如何开始使用其中一个或另一个的建议。 (教程等)

【问题讨论】:

  • 我不认为这应该有特定的版本控制标签。我考虑过自己改变它,但我想知道其他人的想法。

标签: git svn version-control language-agnostic dvcs


【解决方案1】:

版本控制最重要的是:

开始使用吧

不使用版本控制是一个可怕的想法。如果您没有使用版本控制,请立即停止阅读并开始使用它。

转换很容易

cvs<->svn<->git<->hg

你选择哪一个并不重要。只需选择最容易使用的一个并开始记录您的代码历史。您以后可以随时迁移到另一个 (D)VCS。

如果您正在寻找易于使用的 GUI,请查看 TortoiseSVN (Windows)Versions (Mac)(由 codingwithoutcomments 建议)


编辑:

pix0r said:

Git 有一些不错的功能,但除非您已经使用过更标准的东西,例如 CVS 或 Subversion,否则您将无法欣赏它们。

这个。如果您不知道版本控制可以为您做什么,那么使用 git 毫无意义。

编辑 2:

刚刚在 reddit 上看到了这个链接:Subversion Cheat Sheet。 svn 命令行的快速参考。

【讨论】:

  • 您是否有一个很棒的工具可以将存储库从一个存储库转换为另一个存储库?我完全同意 Start Now,但我想知道将所有历史记录和修订从一个 VC 系统移植到另一个系统有多容易?
【解决方案2】:

使用颠覆,它易于设置,易于使用,并且具有大量工具。任何未来的修订系统都将具有从 SVN 功能导入的功能,因此如果您的需求增长,您就不能在未来进行更改。

【讨论】:

    【解决方案3】:

    Subversion Book 是您学习该工具的最佳选择。可能还有其他快速入门教程,但本书是您能找到的最好的单一参考。

    Git 有一些不错的功能,但除非您已经使用过像 CVS 或 Subversion 这样更标准的东西,否则您将无法欣赏它们。我肯定会同意之前的海报并从 Subversion 开始。

    【讨论】:

      【解决方案4】:

      如果您不熟悉版本控制,请阅读以下内容:
      Source Control HOWTO

      【讨论】:

      • Eric Sink 自己说这本书有点过时了。
      • 有 Eric Sink 的印刷书籍(和 PDF),但我不记得下载 URL。尽管这本书有助于理解 VCS 基础知识,但这并不公平。比真实信息更真实的营销。
      【解决方案5】:

      选择 SVN。如果您以前从未使用过源代码管理,那么无论哪种方式对您来说都无关紧要。

      此外,使用源代码控制系统并不需要大量学习。如果你学会了一个,你可以在以后轻松地切换到另一个。

      SVN 是一个很棒的工具,它应该可以满足您的大部分需求。而且由于它已经存在,它拥有相当多的 GUI 工具(例如 TortoiseSVN)。

      选择 SVN。

      【讨论】:

      • “如果你学会了一个,你可以在以后轻松地切换到另一个。”
      【解决方案6】:

      有关大多数基本概念的友好解释,请参阅A Visual Guide to Version Control。这篇文章对 SVN 非常友好。

      【讨论】:

        【解决方案7】:

        我使用过 RCS、CVS、SCCS、SourceSafe、Vault、perforce、subversion 和 git。

        我评估了 BitKeeper、Dimensions、arch、bazaar、svk、ClearCase、PVCS 和 Synergy。

        如果我今天必须启动一个新的存储库,我会选择 git。放下手。

        它是免费的、快速的,并且正在积极开发中。

        您可以将它用作任何使用 git-svn 的 subversion 存储库的客户端。

        它摇摆不定。

        【讨论】:

          【解决方案8】:

          @superjoe30

          如果您是唯一的程序员,那么在您自己的计算机上使用源代码管理会怎么样?这是好习惯吗?有没有相关的提示或技巧?

          我发现 git 实际上更容易做到这一点,因为您不需要服务器或担心输入 URL 等等。您的版本控制内容仅存在于项目内的 .git 目录中,您只需继续使用它即可。

          5 秒介绍(假设您已经安装)

          cd myproject
          git init
          git add * # add all the files
          git commit
          

          下次你做一些改变

          git add newfile1 newfile2 # if you've made any new files since last time
          git commit -a
          

          只要你这样做,git 就会支持你。如果你搞砸了,你的代码在漂亮的 git 存储库中是安全的。太棒了

          • 注意:您可能会发现将内容从 git 中取出比将它们放入要困难一些,但有这个问题比根本没有文件要好得多!

          【讨论】:

          • 使用git add .(添加当前目录),而不是git add *(使用shell扩展),它更快。
          【解决方案9】:

          根据我自己的经验,我不推荐 git 作为版本控制的介绍。我已经使用它几个月了,我的印象是它非常强大,而且——现在我已经部分理解了它——相当直观。然而,学习曲线非常陡峭,尽管我多年来一直在使用版本控制。它还存在表现力太强的问题——它支持许多不同的工作流程和开发模型,但关于“最佳”使用方式的唯一指导是在谷歌搜索中深入几页,这也让新手很难选择起来。

          也就是说,使用 git 从空白开始实际上可能更容易——我的 VCS 经验全部是集中式版本控制(CVS、SVN、Perforce ......)和我(持续!)困难的一部分git 一直在理解分布式模型的含义。我确实瞥了一眼其他 DVCS,例如 Bazaar 和 Mercurial,它们似乎对新手更友好。

          无论如何,正如其他人所说,Subversion 可能是习惯版本控制思维和获得 VCS 好处(回滚、分支、协作开发、更轻松的代码审查等)的实践经验的最简单方法。

          哦,不要从 CVS 开始。它仍在实际使用中,并且具有优势,但恕我直言,它有太多的历史怪癖和实现问题(非原子提交!),不是一个很好的学习方法。

          【讨论】:

            【解决方案10】:

            我的投票投给了 Subversion。它非常强大,但易于使用,并且有一些很棒的工具,例如 TortoiseSVN

            但正如其他人在我之前所说的那样,开始使用它吧。源代码控制是软件开发过程的重要组成部分。任何“严肃”的软件项目都不应该没有它。

            【讨论】:

              【解决方案11】:

              在我目前的工作中,我的前任没有使用任何类型的版本控制。在他保存所有项目的至少 3 个不同的地方,只有堆积如山的文件夹。任何随机项目文件夹都可以预期找到至少一个文件夹名称“project (OLD)”和一个名为“project”的文件夹

              使用版本控制,您永远不必复制“安全”构建。您不必担心您的 IDE 会损坏您正在处理的文件(我在看着您,REALBasic 5.5),因为每天都可以轻松提交(阅读:保存)您的工作。

              不用说,我在发现它存在的第二天就安装了版本控制。

              此外,TortoiseSVN 使提交到数据库就像右键单击文件夹一样简单。

              【讨论】:

                【解决方案12】:

                如果您想避免任何命令行工作,也可以为您的服务器尝试visual svn

                【讨论】:

                  【解决方案13】:

                  如果您使用的是 Mac OSX,我发现 http://www.versionsapp.com/">Versions 是 SVN 的一个令人难以置信的(免费)GUI 前端。

                  【讨论】:

                    【解决方案14】:

                    Git 优于颠覆,但它有点处于最前沿。

                    我会说,如果您刚刚开始,请跳到边缘;设置一个免费帐户@http://github.com

                    他们在网站上有设置和使用 git 的教育材料。

                    【讨论】:

                    • 你的话我看到了不公正。 与 Subversion 相比,Git 并不优越。 Git 是一种 DVCS,可以被认为是“最适合开源开发”,最奇特的功能是您可以快速分叉一个项目。 Subversion 是一个比 Git 更加成熟和稳定的 CVCS
                    【解决方案15】:

                    别等了。选一个,随它去吧。所有系统都有其优点和缺点。您的电源可能会断电,您的计算机被盗,或者您忘记撤消重大更改,并且您的所有代码都会在等待看谁获胜时被烧毁。

                    【讨论】:

                      【解决方案16】:

                      在版本控制系统之间切换并不难。正如其他人所提到的,重要的是尽快开始使用任何东西。使用源代码管理相对于不使用源代码管理的好处远远超过了不同类型的源代码管理之间的不同优势。

                      请记住,无论您使用什么版本的源代码控制,您都可以通过将旧系统中的文件放到磁盘上,然后将这些原始文件导入新系统来对另一个系统进行暴力转换.

                      此外,熟悉源代码控制基础知识对于软件开发人员来说是一项非常非常重要的技能。

                      【讨论】:

                        【解决方案17】:

                        是的,除非您真的需要 git 的特定功能,否则首选 SVN。 SVN 已经够难了;听起来 git 更复杂。你可以从像Beanstalk 这样的人那里获得托管的 svn——除非你有内部 Linux 人员,否则我真的会推荐它。事情很容易出错,很高兴有其他人负责修复它。

                        Eric Sink 有一篇关于修订控制的出色 tutorial,无论您使用哪种系统,都值得一读。

                        【讨论】:

                          【解决方案18】:

                          使用 TortoiseSVN(如果在 mac 上,则使用 version.app)。只需安装即可。如果您需要一个地方来托管您的代码,请查看http://beanstalkapp.com/

                          【讨论】:

                            【解决方案19】:

                            SubVersion 是您的最佳选择,正如 Karl Seguin 指出的那样,迁移到另一个版本控制系统不会有问题。 SVN 在客户端 (TortoiseSVN) 中也有非常容易使用的 GUI。

                            http://www.snee.com/bobdc.blog/2007/08/getting_started_with_subversio.html http://dojo.jot.com/WikiHome/Getting%20Started%20With%20Subversion

                            【讨论】:

                              【解决方案20】:

                              如果您选择使用 subversion 并且想要托管自己的 svn 服务器,那么有一个非常好用且简单的基于 Windows 的服务器,称为 VisualSVN 服务器。它隐藏了设置 apache 服务器的复杂性,您基本上只需 next next next。 用户配置由 webUI 处理,而不是配置

                              http://www.visualsvn.com/server/

                              使用类似 beanstalk 的公共服务可能更容易,但有些人喜欢拥有自己的存储库,无论是为了速度还是安全

                              【讨论】:

                                【解决方案21】:

                                Coding Horror 有一篇关于 how to set up Subversion on Windows 的精彩帖子。

                                按照教程,我能够让 Subervsion 和 TortoiseSVN 在本地运行,并从中获得了所需的教育。

                                就 Git 而言,对它们进行动手实验可能是个好主意,以了解哪种适合您的特定开发实践。

                                【讨论】:

                                  【解决方案22】:

                                  当我决定必须使用代码版本控制系统时,我四处寻找有关如何入门的好教程,但没有找到任何可以帮助我的教程。

                                  所以我简单地为客户端安装了 SVN Server 和 Tortoise SVN 并深入研究,但我一直不知道如何使用它。

                                  【讨论】:

                                    【解决方案23】:

                                    开始在实际工作中使用 SVN,但尽量腾出时间来摆弄 Git 和/或 Mercurial。 SVN 对于生产来说相当稳定,但最终您会遇到这样一种情况:您将需要一个分布式 SCM,到那时您将得到适当的武装并且新系统将足够成熟。

                                    【讨论】:

                                      【解决方案24】:

                                      superjoe30 writes:

                                      相关问题(也许也可以编辑答案来回答这个问题):

                                      如果您是唯一的程序员,那么在您自己的计算机上使用源代码管理会怎么样? >>这是好习惯吗?有没有相关的提示或技巧?

                                      我在所有个人项目中都使用 SVN。我开始在我的家用机器上运行 svn,但最终迁移到了 Dreamhost。他们的包含 Subversion 的托管包非常合理。

                                      【讨论】:

                                        【解决方案25】:

                                        如果在 windows 盒子上,一个快速而肮脏的解决方案是 CVSNT。易于使用,只需设置即可,效果非常好。

                                        我自己更喜欢 SVN,但这是一个快速使用的好方法。

                                        【讨论】:

                                          【解决方案26】:

                                          我肯定会选择 SVN 而不是 CVS,如果仅仅是因为使用 CVS 学习源代码控制的人倾向于使用“svn delete”然后是“svn add”而不是“svn move”。这使得查找特定文件的所有先前版本变得更加困难。你可以随时升级到使用 git-svn。我个人认为它比 hg 更容易学习,但真正使用 SVN 的主要原因是它在很大程度上已成为开源软件事实上的版本控制系统。

                                          如果您打算学习/使用D,几乎必须访问第三方存储库,例如DSource

                                          【讨论】:

                                            【解决方案27】:

                                            @superjoe30 是的,绝对的。一旦你开始使用版本控制,你就再也回不去了。我将它用于所有内容,甚至是我的“主”文件夹。

                                            @Orion Edwards Subversion 不需要服务器。您可以直接访问本地存储库(当然,通过客户端),并且不涉及服务器进程。

                                            【讨论】:

                                              【解决方案28】:

                                              只需使用 TortoiseSVN,即使不知道实际的 Subversion 命令也可以生活......但这很糟糕。幸运的是,当您的无价存储库第一次被损坏时,总会有一个“绝好的机会”来背诵它们。

                                              是的,它发生了。

                                              【讨论】:

                                                【解决方案29】:

                                                正如在其他地方多次提到的,Just Do It。通过阅读红皮书中的快速入门指南,我能够立即在 Windows 下从头开始使用 Subversion。一旦我将 TortoiseSVN 指向存储库,我就开始做生意了。我花了一些时间才把更好的分数拿下来,但它们只是小问题。

                                                我建议安装 Subversion 服务而不是使用 file:// URL,但这主要是个人喜好。对于存储在您的开发机器上的存储库,file:// 可以正常工作。

                                                【讨论】:

                                                • 在多用户环境中使用 file:// URL 通常不是最安全的方法,因为文件的访问方式更容易损坏。鉴于设置 Subversion 服务器非常简单,您实际上不需要使用 file://。话虽如此,我在我是唯一开发人员的项目中使用了 file://,在这种情况下它工作得很好。
                                                【解决方案30】:

                                                根据个人经验,svn 是我的推荐。您甚至可以使用像Beanstalk 这样提供免费帐户的服务(显然有限制,但对于任何小型项目来说都足够了)来试水。但正如其他人所说,git 更优越,可能值得研究。

                                                【讨论】:

                                                  猜你喜欢
                                                  • 1970-01-01
                                                  • 2010-10-30
                                                  • 1970-01-01
                                                  • 1970-01-01
                                                  • 2016-07-29
                                                  • 2018-06-19
                                                  • 2011-02-07
                                                  • 2010-09-16
                                                  相关资源
                                                  最近更新 更多