2

可能重复:
什么是版本控制系统?Git 有什么用?

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


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


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

4

5 回答 5

3

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

为自己

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

与团队合作

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

差异和分支的示例

团队的 Git 工作流程

Git 分支模型

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

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

提交的频率和时间

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

  • 它的速度很快(切换分支真的很快,而且你有一个本地副本,所以你不必为很多事情与服务器通信,除非你想向服务器推送或拉取更改)
于 2012-10-26T05:41:58.990 回答
1

是的,这似乎很幼稚,但每个问题都值得一问!

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

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

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

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

于 2012-10-26T05:43:41.287 回答
1

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

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

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

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

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

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

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

啰嗦——对不起——但希望有帮助!

于 2012-10-26T05:47:00.973 回答
1

使用 git 的优点:

  • 即使本地项目崩溃,代码在远程仓库中也是安全的
  • 您可以尝试新事物而不必担心以前的作品,因为它们可以检索
  • 代码可以从世界任何地方访问
  • 团队合作时,所有工作都将存储在一个地方,以便团队中的每个人都可以访问
  • 可以轻松跟踪每一个更改,谁做的,什么时候做的
  • 应用部署将更容易
  • 您可以拥有多个版本/分支,以便您轻松识别每个版本中添加到应用程序中的新功能
于 2012-10-26T05:49:43.460 回答
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 #历史、架构、许可、性能、git 和 svn 的特性

现在 git 和 subversion 的区别

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

于 2012-10-26T06:02:55.263 回答