什么是版本控制系统? Git有用吗?

比如我在rails上做ruby并使用git进行版本控制。

我使用git作为唯一的开发人员,我无法想象没有它的生活。 使用git,我总是知道我在做什么以及我修改了什么。 我可以做出实验性的改变而不必担心不记得我改变了什么。 我可以查看旧版本的文件,以防我删除了现在我想要的内容。

我总是可以去我的终端并输入git status并查看我更改了哪些文件。 我可以输入git diff来查看这些更改。 如果我认为我的改变不好,我想回到原来的位置,我只需输入git checkout .

关于Git最好的部分与其他源代码控制系统不同,Git可以离线工作。 无论您是在飞机上,还是在家中,还是在没有连接的地方。 您仍然可以将更改提交到本地git存储库,并在连接时将其推送到集中式服务器(如果有的话)。 让Git非常强大的另一件事是’Branches’。 如果你想修复bug或者想要尝试新的东西而不损害你当前的工作代码,只需创建一个分支并对其进行处理。 当您的分支中的工作正常时,您可以将其合并到主分支。

我会说Git比其他SCM提供更多的灵活性。

当你与另一个人或成千上万的人合作时,版本控制系统真的很闪耀; 当人们处理文件时,很有可能他们会在类似的空间中工作。 源代码控制系统允许您来自多个开发人员的更改合并为一个连贯的产品,回滚错误,找出谁编写了哪些特定代码行(询问他们为什么他们的代码在两个月后无法运行),提供出色的业务连续性,等等

但是他们对于一个开发人员来说仍然很精彩:在六个月之后检查你为什么以某种特定方式做某事的评论可能值得他们的重量。 您可以同时检查依赖于四个单独文件的大型更改,然后,如果您需要撤消它,一个命令将同时取消所有四个文件的更改。

版本控制系统允许您更轻松地跟踪文件的更改…所以说您编辑文件并在一周内将其提交给系统几次……如果出现问题,您可以进入并查看所有特定行随着时间的推移你对该文件进行的行更改,直到找到导致问题的更改…如果您正在保存文件的不同副本,那就更难了? (这个function太棒了,我知道用它来跟踪他们正在写的书的变化的作者!)

然而,它真正闪耀的地方是不同的开发人员同时处理特定文件…所以如果我编辑400行代码文件的1-20行,并编辑97 – 143,版本控制系统可以将这些更改合并在一起,这样当您进行更新时,您可以将我的更改合并到您的文件中,并可以查看我的代码如何影响您编写的内容(如果有)。

更好的是,如果我们使用相同的代码行,版本控制系统将尝试合并这些更改,如果不是,它会警告您冲突…然后您可以与其他开发人员和弄清楚如何手动合并您的更改。 当然,对于版本控制,您通常会处理更大的软件,因此您也可以将更新转移到您不直接处理的其他文件中。

使用git,你会得到另一个真正杀手级的function,让开发人员感到震惊……

假设您正在处理您的代码,努力尝试为您的软件添加function,请拨打紧急电话,“请修复XYZ,网站不工作!”

如果没有版本控制,你必须注释掉你刚刚添加的所有内容,然后尝试解决问题,如果你忘记了某些地方,当你试图追捕你的新bug时,它可能会导致更多问题介绍是因为你不记得你写的所有新代码(你能告诉我以前去过那里吗?)…用Git,你可以简单地“分支”(创建一个不同类型的代码虚拟副本)。并开始使用你的新function……然后当凌晨3点召唤时,你可以切换回软件的主要稳定分支,提交修复程序,推送它……然后返回处理你的function。
非常好玩吧?

你可以免费获得版本控制系统(特别是git)的许多其他东西,(内置能够比较同一文件的版本,整个代码库的本地化副本与git,更改提交消息和历史记录的能力等等) )。

我推荐免费的Git社区书来帮助你
https://github.com/rails/jquery-ujs
希望这可以帮助