使用git进行版本控制

时间:2012-10-26 05:27:30

标签: ruby-on-rails git

  

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

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


  

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


我的意思是它有什么优势!我们不能把它放在我们当地的机器上吗?

5 个答案:

答案 0 :(得分:3)

使用git / source控件的优点:

为自己

  • 记住您编码的内容以及编辑时间
  • 能够将您的工作与以前的工作进行比较
  • 允许您处理某些实验性内容,如果无效则将其切换回原来的位置

与团队合作

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

example of a diff and branches

Git workflow for teams

Git branching model

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

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

How often and when to commit

使用Git而不是其他源代码控制的原因

  • 它的快速(切换分支非常快,你有一个本地副本,所以你不必与服务器通信很多东西,除非你想推送或拉动服务器的更改)

答案 1 :(得分:1)

是的,这看起来很天真,但每个问题都值得一提!

首先,使用SCM(软件配置管理器)将在很多场景中为您提供极大的帮助:

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

如果在没有SCM的团队中工作,这甚至都没有开始触及你所拥有的无限量的工作。

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

答案 2 :(得分:1)

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

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

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

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

多个功能:您的软件非常成功,您每周都会开始发布它。但是,并非每个功能都可以发布。首先,您开始处理小部件功能,而不是开始处理 doodad 功能。如果您同时处理这两个问题,那么您可能同时开发了两个半编码功能,并且没有任何工作可以很好地发布。使用版本控制,一旦完成其中一项功能,您就可以将其合并到“主”版本中,就像您在一天内编写它一样。

合作:最后,现在想象一下,你们是一个由五六个开发人员组成的团队,他们都在使用相同的代码。当然,您不希望来回发送代码的zip文件,特别是当每个开发人员都在处理单独的功能时。使用版本控制,您可以拥有一个历史记录,所有开发人员都可以编写和阅读这些历史记录。

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

啰嗦 - 抱歉 - 但希望有所帮助!

答案 3 :(得分:1)

使用git的优点:

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

答案 4 :(得分:1)

您看到@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 #History,架构,许可,性能,git和svn的特性

现在git和subversion之间的区别

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