git分布式版本控制系统
问题:说到分布式,就很容易联想到并发,并行操作带来的一些问题,即同一时刻对同一数据操作带来的冲突问题。比如往数据库里改数据,张三改的3,李四改的四,那就会带来一些问题了,冲突问题
解决办法:数据库解决这种问题,采用的是事务机制,就是锁---改数据---解锁,谁先拿到锁了,谁有权利操作,操作完了,解锁,其他人再抢锁,这样能解决冲突问题。
同样的,版本控制系统也可以采用锁机制来解决并行开发带来的冲突,谁先拿到锁,谁提交代码。但是这样就有个问题,一是这样降低了效率,二是万一一个人拿到锁了,一直不解锁,下个人就一直等着拿锁,不能提交代码。
另外一种模式,就是Copy-Modify-Merge,就是张三李四都拷贝一份儿代码到自己电脑上,张三和李四各自修改代码,提交的时候,再把两个人的代码合并,有冲突的地方,处理掉冲突后,提交一个最新版本。
git采用的是第二种方式,而且每台开发电脑上都有一样的完整的版本库,所以称为分布式版本控制,相对应的就是suv,集中式管理系统
全世界的程序员们联合起来吧!