2012-10-26 102 views
2

可能重复:
What is a version control system? How is Git useful?使用Git版本控制

我是新来的Ruby on Rails的平台,所以这听起来可能有点天真。


为什么和我们什么时候我们的工作存储在版本控制系统如Git?


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

+0

我推荐阅读[本书]的第一章(h ttp://git-scm.com/book)[git-scm.org]。这是一个非常轻松,简单,快速的**阅读,它很好地解释了为什么要使用源代码管理(SCM)系统,特别是'git'。此外,它还有一些非常清晰,清晰的图表来解释概念,我发现它非常有用。 – simont

回答

3

优势,为使用Git /源控制:

对于自己

  • 记住你已经编写什么,当你做到了
  • 如果能够比较你对以前的工作
  • 什么
  • 允许您处理某些实验,如果它不起作用,请将其切换回之前的位置

与团队

  • 它与其他工作更轻松的工作 - 你可以在同一时间对同一文件工作,真的很容易合并更改。
  • 它可以让你在多个地点工作,并轻松拥有最新的代码
  • 将部署你的代码到服务器

example of a diff and branches

Git workflow for teams

Git branching model

帮助

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

每次完成某个特定的“想法”或您正在进行的工作时,都希望这样做。这意味着你可以拥有一个有用的提交信息,并且可以回到刚才写的那个特性或者你刚修复的那个bug。

How often and when to commit

理由使用Git比其他源代码控制

  • 其快速(开关支路实在是快,你有一个本地副本,让你没有传达给一台服务器很多事情,除非你想推或拉更改服务器)
1

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

首先,使用SCM(软件配置管理器),将极大地帮助你在许多场景:

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

这并不甚至开始接触,如果在一个团队中工作,而不SCM你不得不工作的无限量。

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

1

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

通过版本控制可以轻松了解进行了哪些更改,查看和恢复旧版本的文件,甚至可以将更改从一个版本导入到另一个版本。

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

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

多功能:您的软件非常成功,您每周开始发布它。但是,并非每个功能都准备好发布。首先你开始编写小部件的功能,比你开始编写的功能更容易功能。如果您同时使用这两种功能,则可能同时开发两种半编码功能,而且没有任何功能足以发布。通过版本控制,只要其中一项功能完成,您就可以将它合并到“主要”版本中,就像您在一天内写入一样。

协作:最后,现在想象你在一个团队中的五名六个开发人员在同一代码的所有工作是。当然,您不希望来回发送代码的zip文件,尤其是当每个开发人员都在开发单独的功能时。通过版本控制,您可以拥有一个历史记录,您的所有开发人员都可以对其进行编写和阅读。

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

啰嗦 - 对不起 - 但希望有所帮助!使用Git的

1

优点:

  • 代码将在远程回购安全,即使本地项目崩溃
  • 您可以尝试新的东西,而不用担心以前的作品,因为他们可以检索
  • 代码可以从世界任何地方访问
  • 在团队中工作时,所有工作将存储在一个地方,以便团队中的每个人都可以访问
  • 每个每个变化都可以很容易地跟踪,谁做的和他们做什么的时候
  • 部署应用程序将更容易
  • 您可以有多个版本/分支,以便您可以轻松识别添加到在每一个版本
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中和颠覆之间的差

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