我已经使用“传统”版本控制系统来维护过去项目的源代码库。我正在开发一个分布式团队的新项目,我可以看到使用分布式系统的优势。鉴于我理解SourceSafe,CVS和Subversion;你对Git新手有什么建议?我开始使用Git之前应该知道些什么?
回答
Git - SVN Crash Course是一个很好的读书。
在提交文件之前,必须将它们添加到Git临时区域— 每隔时间。为了使这更容易,有一个-a
选项来添加所有跟踪的文件,如git commit -a
。
此外,当你做git diff
时,它只显示你的工作副本和暂存区域内的区别。如果您已将更改的文件添加到暂存区域,即使您可能有未提交的更改,git diff
也可能不会报告任何内容。确定使用git status
进行查看。
我在我的公司试过git。 我们使用CVS并希望转移到更好的VC工具。 我们选择git作为文件版本控制的最佳工具(Linus on GIT)。 它的性能仅仅是最好的,对于深入理解版本控制的开发人员来说,它是一个非常好的工具,但是对于在后台使用版本控制并且不想学习如何使用更多的开发人员而言,这是一场噩梦。 (而且他们确实需要学习很多)
而且它与现有IDE的集成对于完成来说是远远不够的。 对于一个普通的开发人员来说,整个可用性是一个相当大的问题。
经过4名开发人员的试点后,我们转而使用Subversion作为最简单的工具。
还有Subversion的多点会议商业解决方案(我们没有尝试,但仍然会尝试不久) - WANDisco
在我自己的经验移动从Subversion到Git的,最重要的是你不用什么学习,但你需要忘掉。分布式版本控制是很不同于集中版本控制。 CVC是DVC的一个子集,因此您可以在DVC工具中执行CVC,但这比使用CVC工具更复杂。
尝试重新学习CVC,并获得DVC的心态。如果您最终只是在DVC工具中使用CVC,那么您只会因所有增加的复杂性而感到沮丧,并且您不会意识到增加的复杂性会在灵活性方面购买您。
所有的DVC工具都有很好和非常强大的支持分支和合并。用它。所有的历史都在您的指尖。用它。 (例如:从不注释掉代码,只需删除它即使在没有互联网连接的飞机上也可以随时取回。)
Git的一个非常重要的方面:所有其他工具都有或多或少的定义工作流程。 Git没有。 Git是DVCS工作流程构建工具包。这使得有时很难知道该怎么做:必须设计和实现自己的工作流程(提示:使用大量的shell脚本)。我现在使用Git已经有一年多了,而且我还没有完全弄清楚我的工作流程。
- 1. 我开始使用媒体基础变换之前应该知道些什么?
- 2. 在作为asp.Net开发人员转到extJs之前应该知道些什么?
- 3. 在将JavaScript文件合并为一个之前我应该知道些什么?
- 4. 在开始apache solr之前应该知道的事情?
- 5. 在使用IM应用程序之前,我需要知道些什么?
- 6. CasperJs在开始之前做些什么?
- 7. 关于开发64位应用程序,我应该知道些什么?
- 8. 我应该知道什么来开发p2p小应用程序
- 9. 关于F#CTP我应该知道些什么?
- 10. 我们什么时候知道我们应该使用符号?
- 11. 在开始使用流星之前,我应该学习node.js吗?
- 12. 我应该为git user.name使用什么?
- 13. 从数据集转移到Linq2Sql之前我应该知道什么?
- 14. 开发人员设计师 - 我应该知道什么?
- 15. 我需要知道什么时候应该使用wp_redirect()?
- 16. 开始Android开发之前我应该学习哪些设计模式
- 17. 为了开始全职IOS开发,我需要知道些什么?
- 18. 在开始使用Lift之前,我需要学习什么?
- 19. 在Prestashop开始模块开发之前,我想知道主要的知识点?
- 20. 在Windows 7上开发.NET之前,我应该考虑什么?
- 21. 为什么远程git服务器应该有 - 不知道
- 22. 我应该知道开始编码为Android
- 23. 何时/为什么我应该开始使用数据库?
- 24. 开发人员在构建手机应用程序之前应该知道什么?
- 25. 开发可互操作的WCF Web服务时应该知道些什么?
- 26. 提交之前知道GIT哈希?
- 27. 什么是WCF?在学习WCF之前应该知道哪种语言?
- 28. 使用asp.net mvc之前应该从哪里开始?
- 29. Ruby和Rails开发人员应该知道什么?
- 30. C#/ .Net/WPF开发人员应该知道什么?
...除非你命令“git diff foo/bar.file” – 2008-09-24 12:56:34