可能重复:
什么是版本控制系统?Git 有什么用?
我是 Ruby on Rails 平台的新手,所以这听起来有点幼稚。
为什么以及何时将我们的工作存储在 git 这样的版本控制系统中?
我的意思是它有什么好处!我们不能把它保存在我们的本地机器上吗?
可能重复:
什么是版本控制系统?Git 有什么用?
我是 Ruby on Rails 平台的新手,所以这听起来有点幼稚。
为什么以及何时将我们的工作存储在 git 这样的版本控制系统中?
我的意思是它有什么好处!我们不能把它保存在我们的本地机器上吗?
使用 git/源代码控制的优点:
为自己
与团队合作
何时存储或提交您的工作:
每次完成特定“想法”或正在处理的工作时,您都希望这样做。这意味着您可以获得有用的提交消息,并且可以立即回到您刚刚编写的功能或刚刚修复的错误。
使用 Git 而不是其他源代码控制的原因
是的,这似乎很幼稚,但每个问题都值得一问!
首先,使用 SCM(软件配置管理器)将在许多场景中为您提供极大的帮助:
如果在没有 SCM 的团队中工作,这甚至不会涉及到您将拥有的无限量的工作。
并且使用单片机不涉及网络,git
任何其他分布式单片机对本地开发同样有效,因为存储库都在您的计算机中。你只是不要拉和推。
选择不是将代码存储在版本控制中还是将其存储在本地机器上。事实上,与其他版本控制系统(如 Subversion,也称为svn
)不同,Git 不需要服务器即可运行。
版本控制可以轻松了解所做的更改、查看和恢复文件的旧版本,甚至可以将更改从一个版本导入到另一个版本。
检索:想象一下你正在自己做一个项目。您删除了您认为不再需要的旧文件。一周后,您意识到该文件非常重要。如果您使用版本控制,您可以看到文件在您删除之前的样子,并像从未删除过一样恢复它。此外,大多数提交给版本控制的更改都包含消息;如果您加入了一个团队并且之前的开发人员使用了版本控制(带有良好的提交消息),您可以更轻松地了解何时进行更改以及更改原因。
多个版本(分支):现在假设您的软件是 1.0 版。您正忙于开发 2.0 版,但有人提交了一个错误。你能做什么?使用版本控制,您可以缩放回 1.0 版,进行一些更改,然后创建 1.0.1 版。大多数版本控制平台甚至允许您将在 1.0.1 版中所做的更改应用到您在 2.0 版中所做的工作中。
多种功能:您的软件非常成功,您开始每周发布它。但是,并非所有功能都已准备好发布。首先,您开始处理小部件功能,然后开始处理小部件功能。如果您同时处理这两个问题,您可能会同时开发两个半编码的功能,并且没有任何东西可以很好地发布。使用版本控制,一旦完成其中一项功能,您就可以将其合并到“主”版本中,就像您在一天内编写的一样。
协作:最后,现在假设您在一个由五六个开发人员组成的团队中,他们都在处理相同的代码。自然地,您不希望来回通过电子邮件发送代码压缩文件,尤其是当每个开发人员都在开发单独的功能时。使用版本控制,您可以拥有所有开发人员都可以写入和读取的单一历史记录。
当然,上述某些操作可以通过在不同的相邻目录中保存相同文件的多个副本来完成。版本控制软件的好处是它可以为您处理大部分工作,同时避免在磁盘上一遍又一遍地复制相同的文件。
啰嗦——对不起——但希望有帮助!
使用 git 的优点:
您会看到@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/