().
版本控制工具主要应用于大型软件开发领域。
在git分布式源代码管理工具出现之前,版本控制工具主要是,集中式版本控制工具,比如著名的cvs,比如很多大型企业所用的svn。
每一位程序员,利用工具在本地工作站,建立一个工作目录树,目录中的内容就是版本库的所有代码,修改或者完成代码后,再提交给远端的代码库。
但是,这样集中管理的方式有很大的局限性,因为每个本地的目录树,都是最新的代码,但如果想要查询历史修改记录,就必须与服务器上的代码库做比较。
这样,就必须使用到网络,永远保持网络在线的状态,才可以做到。并且,最大的问题在于,主版本只有一个,且不能随意修改,这就限制了软件开发的效率。
而git则不同,在抓取了代码库之后,向版本库再提交代码时,无需连接远程版本库,也就无需连接网络,所有的记录都存储在本地计算机的目录中。
在同步时,通过git的h操作,连接网络,将代码上传到主版本库,自动比较改动后,生成一个包含少量修改的补丁包,补丁包由项目维护人员测试,没有问题后,再更新到主版本库。
前世时,git分布式源代码控制系统,是由lux系统发明人,林纳斯特瓦兹创造出来的,就因为lux系统是开源的操作系统,源代码的更新大部分来源于众多程序员的无偿劳动,而每天都有成千上万个程度员,向lux团队大量源代码更新,纯粹靠人工的话,工作量实在太大,效率又太低。
于是,林纳斯特瓦兹就在2005年创造了git版本控制系统,来解决lux系统的版本控制问题。
推出分布式管理系统,也是张毅自己本身的需要。
微硬公司的软件种类越来越多,代码库也越来越庞大,他本身又要经常出国,更新代码和修补程序bug非常的麻烦。
程序员之间想要沟通,只能靠电话或者邮件沟通,驻天朝的程序员提交的代码,在山姆国想看到,只能通过点对点的沟通,考虑到时差,考虑到网络环境等等的不利因素,会导致沟通的效率极低。如果再加上欧洲的程序员,那就是一个恶梦了。
git的出现,给出了解决分布式源代码控制的解决方案。
而github,就像一个大型的立体式仓库,集合了所有的有代码存储和管理需求的公司。
对于个人用户来说,github代码仓库是完免费的,但需要你敞开自己的源代码。
开始时,有些原创
程序员会觉得自己公开源码,是一种吃亏的行为,但后来却发现,事情远不是这么简单定义的。
自己的源代码上传到网站之后,所有的程序员都可以看到,有些感兴趣的程序员,会测试自己的源代码,找出一些bug,或者提出一些改进意见。
人多力量大,在这一刻得到了淋漓尽致的体现。经过众多程序员的群策群力,再垃圾的源代码,也会变废为宝,成为闪闪发光的金子。
而修改的过程,就是编程思想碰撞的过程,在不断的交流中,大家不久之后就会发现,自己的编程能力突飞猛进,成长的速度远远超出想像。
程序员的圈子,相对比较小众,但横向联系非常广泛,技术交流更是频繁,这么好的源代码仓库网站,以原子裂变的方式,爆发式的传播开来。