【问题标题】:Using git for version control [duplicate]使用 git 进行版本控制 [重复]
【发布时间】:2012-10-26 14:02:55
【问题描述】:

可能重复:
What is a version control system? How is Git useful?

我是 Ruby on Rails 平台的新手,所以这听起来有点幼稚。


我们为什么以及何时将工作存储在 git 这样的版本控制系统中?


我的意思是它有什么好处!我们不能把它保存在我们的本地机器上吗?

【问题讨论】:

  • 我建议通读this book [git-scm.org] 的第一章。这是一本非常轻松、容易、快速的阅读文章,它很好地解释了为什么要使用源代码管理 (SCM) 系统,尤其是 git。此外,它还有一些非常简洁、清晰的图表来解释概念,我觉得这很有帮助。

标签: ruby-on-rails git


【解决方案1】:

使用 git/源代码控制的优势:

为自己

  • 记住您编码的内容和编码时间
  • 能够将您所做的工作与以前的工作进行比较
  • 允许您进行一些实验性的工作,如果不起作用,请将其切换回原来的位置

与团队合作

  • 它使与他人的合作变得更加轻松 - 您可以同时处理同一个文件,并且非常轻松地组合您的更改。
  • 它将允许您在多个位置工作并轻松获得最新代码
  • 这将有助于将您的代码部署到服务器

Git workflow for teams

Git branching model

何时存储或提交您的工作:

您希望在每次完成特定“想法”或正在处理的工作时都这样做。这意味着您可以获得有用的提交消息,并且可以立即回到您刚刚编写的功能或刚刚修复的错误。

How often and when to commit

使用 Git 而不是其他源代码管理的原因

  • 它很快(切换分支非常快,而且您有一个本地副本,因此您不必为很多事情与服务器通信,除非您想向服务器推送或拉取更改)

【讨论】:

    【解决方案2】:

    是的,这看起来很幼稚,但每个问题都值得一问!

    首先,使用 SCM(软件配置管理器)将在许多情况下为您提供极大的帮助:

    • 在不接触主代码的情况下尝试实验性功能
    • 同时开发几个独立的想法
    • 从失败的更改中恢复,只要它们很复杂并且包含多个文件中的更改。
    • 跟踪特定版本中使用的确切代码,以修复报告的错误。

    如果在没有 SCM 的团队中工作,这甚至不会涉及到您将拥有的无限工作量。

    并且使用 SCM 不涉及网络,git 和任何其他分布式 SCM 对于本地开发同样有效,因为存储库都在您的计算机中。你只是不要拉和推。

    【讨论】:

      【解决方案3】:

      选择不是将代码存储在版本控制中还是将其存储在本地计算机上。事实上,与其他版本控制系统(如 Subversion,也称为svn)不同,Git 不需要服务器即可运行。

      版本控制使您可以轻松了解所做的更改、查看和恢复旧版本的文件,甚至可以将更改从一个版本导入到另一个版本。

      检索:想象一下,您正在独自开展一个项目。您删除了您认为不再需要的旧文件。一周后,您意识到该文件非常重要。如果您使用版本控制,您可以看到文件在您删除之前的样子,并像从未删除过一样恢复它。此外,大多数提交给版本控制的更改都包含消息;如果您加入了一个团队并且之前的开发人员使用了版本控制(带有良好的提交消息),您可以更轻松地了解更改的时间和原因。

      多个版本(分支):现在假设您的软件是 1.0 版。您正忙于开发 2.0 版,但有人提交了一个错误。你能做什么?使用版本控制,您可以缩放回 1.0 版,进行一些更改,然后创建 1.0.1 版。大多数版本控制平台甚至允许您将 1.0.1 版中所做的更改应用到您在 2.0 版中所做的工作中。

      多项功能:您的软件非常成功,您开始每周发布一次。但是,并非所有功能都已准备好发布。首先,您开始研究 widget 功能,然后开始研究 doodad 功能。如果你同时处理这两个,你可能同时有两个半编码的特性在开发中,并且没有什么工作得足够好来发布。使用版本控制,一旦完成其中一项功能,您就可以将其合并到“主”版本中,就像您在一天内编写的一样。

      协作:最后,现在假设您在一个由五六个开发人员组成的团队中,他们都在处理相同的代码。自然地,您不希望来回通过电子邮件发送代码的 zip 文件,尤其是当每个开发人员都在开发单独的功能时。通过版本控制,您可以拥有一个历史记录,所有开发人员都可以在其中写入和读取。

      当然,可以通过在不同的相邻目录中保存相同文件的多个副本来完成上述某些操作。版本控制软件的好处是它可以为您处理大部分工作,同时避免在磁盘上一遍又一遍地复制同一个文件。

      啰嗦——抱歉——但希望对您有所帮助!

      【讨论】:

        【解决方案4】:

        使用 git 的优点:

        • 即使本地项目崩溃,代码在远程仓库中也是安全的
        • 您可以尝试新事物,而不必担心以前的作品可以检索
        • 代码可以从世界任何地方访问
        • 在团队中工作时,所有工作都将存储在一个地方,以便团队中的每个人都可以访问它
        • 可以轻松跟踪每项更改、更改人员以及更改时间
        • 应用部署将更容易
        • 您可以拥有多个版本/分支,以便您轻松识别每个版本中添加到应用程序中的新功能

        【讨论】:

          【解决方案5】:

          您会看到 @arulmr@kieran-andrews@Jeff@rewritten 发布了许多优点,但如果您想了解更多详细信息,可以查看以下链接

          1)http://git-scm.com/book/ch8-1.html

          2)http://www-oss.fnal.gov/~mengel/git_vs_subversion.html.bak

          3)https://git.wiki.kernel.org/index.php/GitSvnComparison

          4)http://www.wikivs.com/wiki/Git_vs_Subversion#git 和 svn 的历史、架构、许可、性能、特性

          现在 git 和 subversion 的区别

          1) http://boxysystems.com/index.php/5-fundamental-differences-between-git-svn/

          【讨论】:

            猜你喜欢
            • 2017-08-23
            • 1970-01-01
            • 1970-01-01
            • 2017-12-17
            • 2022-01-21
            • 1970-01-01
            • 2014-05-17
            • 2013-11-08
            • 2020-02-12
            相关资源
            最近更新 更多