像例如我在轨道上做红宝石和使用git进行版本控制。什么是版本控制系统? Git如何有用?
回答
版本控制系统在与另一个人或成千上万的人一起工作时真正发光;当人们处理文件时,他们很可能会在相似的空间工作。源代码控制系统让您合并将多个开发人员变成一个一致的产品,回滚错误,弄清楚谁写了哪些特定的代码行(问他们为什么他们的代码在两个月后不工作),提供出色的业务连续性等
但他们依然精彩只有一个开发者:您在评论有关为什么你做了一些特殊的方式能找到一些值得他们重的黄金六个月后。您可以同时检查依赖于四个独立文件的大型更改,然后,如果需要撤消它,一个命令将立即退出所有四个文件的更改。
我使用git作为独立开发者,我无法想象没有它的生活。使用git,我总是知道我在做什么以及我修改了什么。我可以做实验性的改变,而不用担心不记得我改变了什么。我可以查看旧版本的文件,以防我删除现在我想要的东西。
我总是可以去我的终端并键入git status
,看看我已经改变了哪些文件。我可以输入git diff
来查看这些更改。如果我决定我的更改不好,我想回到我刚才的位置,只需输入git checkout .
即可。
关于Git的最佳部分与其他源代码控制系统不同,Git可以脱机工作。无论您是在飞机上还是在家中,或者是在没有连接的地方,都无所谓。你仍然可以将更改提交到本地git存储库&将它连接到集中服务器(如果有的话)。还有一件让Git非常强大的东西是'分支'。如果您想要修复错误或想要尝试新的功能而不损害当前的工作代码,只需创建一个支持&的分支。在分支中工作正常的情况下,可以将它合并到主分支。
我会说Git比任何其他SCM提供更多的灵活性。
这适用于所有DVCS与集中式DVCS相比。 – eckes 2011-03-23 09:05:14
问题是“Git如何有用?”所以我这样回答。 – hnprashanth 2011-03-23 09:23:16
版本控制系统让你更轻松地跟踪对文件的改变......所以说你编辑一个文件,并将其提交到系统几次在一个星期......如果东西坏了,你可以进去看看所有特定的行逐行更改,直到找到导致问题的更改为止......如果要保存文件的不同副本,这会更困难吗? (这个功能太棒了,以至于我知道作者使用它来跟踪他们正在编写的书籍的变化)。
但是,它真正发光的地方是不同的开发人员正在研究特定文件同时 ...因此,如果我编辑400行代码文件的行1-20,和编辑97 - 143,版本控制系统,这样当你去做一个更新,你会得到这些更改合并在一起我更改合并到您的文件中,并可以看到我的代码如何影响您所写的内容。
更好的是,如果我们已经在相同的代码行上工作,版本控制系统将尝试合并这些更改,如果不是,它会警告您冲突......然后您可以与其他开发人员一起解决并找出如何手动合并您的更改。当然,版本控制你平时工作的一个更大的软件,所以你也可以拉更新到其他文件,你是不是工作的直接任意。
使用Git,你会得到一个真正的其他的杀手级功能,使开发人员昏厥......
说你是工作在你的代码,努力尝试将功能添加到您的软件,BU你会得到一个紧急呼叫, '请修复XYZ,网站不工作!“
如果没有版本控制,您必须将所有刚添加的内容注释掉,然后尝试修复问题,如果您在某处忘记了某些内容,当你试图追捕你引入的新bug时,可能会导致更多的问题,因为你不记得你写的所有新代码(你能告诉我以前去过吗?)...用Git,你可以简单地'分支'(创建一个不同的你的代码的虚拟副本)...并且处理你的新功能......然后,当这个3am调用进来时,你可以切换回软件的主要稳定分支,提交修复,并将其激活。 ..然后回去工作你的功能。
非常漂亮的好吗?
有很多的你与版本控制系统(特别是GIT)免费获得其他的事情,(建于比较同一文件的版本的能力,整个代码库使用Git,改变提交信息能力的本地化副本和历史等等)。
我推荐免费的Git的社区书能帮助你走好
https://github.com/rails/jquery-ujs
希望这有助于
- 1. 什么是一个好的版本控制系统用来版本化我的整个本地文件系统?
- 2. 版本控制系统c#
- 3. 什么是最佳锁定版本控制系统?
- 4. 在git(或任何其他版本控制系统)中保存什么?
- 5. 增量更新版本控制系统
- 6. 简单的版本控制系统或版本控制文件系统或版本控制数据库
- 7. 除了SVN,什么版本控制系统使用MIME类型?
- 8. 版本控制内容管理系统?
- 9. 版本控制系统历史处理
- 10. 多个同步版本控制系统?
- 11. 版本控制系统(Git) - 服务器vs本地说明
- 12. 本地版本控制系统(Windows)
- 13. FOSSIL(版本控制系统)不添加.htaccess文件。为什么?
- 14. 版本控制系统如何恢复版本?
- 15. 为什么需要将django迁移到版本控制系统
- 16. 如何确定系统使用的是什么版本?
- 17. 支持标签/标签的最常用的版本控制系统是什么?
- 18. Accurev是分布式版本控制系统吗?
- 19. 抓取版本控制系统
- 20. 为什么Ruby源代码由两个版本控制系统维护?
- 21. SQLite和版本控制系统
- 22. 其他版本控制系统中的git stash等价物?
- 23. 从Java程序操作GIT版本控制系统的输出
- 24. 个人版本控制系统推荐
- 25. 在版本控制系统之间移动的最佳做法是什么?
- 26. 版本控制系统的Android为Windows
- 27. webSites的控制版本系统
- 28. 选择版本控制系统
- 29. 是否有命令行的版本控制系统抽象?
- 30. java版本控制系统与蚂蚁
听起来像一个家庭作业? – Chris 2011-03-23 18:20:26