git-基本知识

许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别,比如这样:*****2015改动版,****2015打死也不改动1,****2015打死也不改动2。这是比较搞笑的了。作为一个合格的程序员,版本管控是必须要掌握的。

就我目前使用过的管控工具,从微软的vss变到vsts,然后使用svn,然后迷上了git。发现git真的是个好东西;也顺便比较下我使用过这些管控工具。

vss,和vsts做微软的开发时最好不过了,微软开发最方便的就是什么都给你集成了。这类系统,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新但是vss和vsts开发有局限,团队协作开发时,如果需要同时编辑一个文件这个是不太可能的,当然你也可以将你本地的文件的只读属性去掉,让其脱离管控,但是会有合并问题;更大的缺点是中央服务器的单点故障。如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。要是中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录,而被客户端偶然提取出来的保存在本地的某些快照数据就成了恢复数据的希望。

吐槽一下,像这种因为代码中心挂了,造成团队都没法干活的事,我在上一家公司就经常遇到,后来,就将管控方式变成了GIT!

git--分布式版本控制系统,为什么叫git,这个就要问Torvalds    了,据说是之前linux代码管控中心那工具突然收费了,然后大牛一怒之下,就写下了这个工具。(天哪,大牛就是大牛,开源界两个神奇的玩意,linux,git都是一个人干的,除了膜拜,我都怀疑这人是不是未来穿越过来的!)分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库.客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份.每一个开发者都会有一份完整的备份。Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异,与其说git是个版本控制系统,不如说是个文件管理系统。



Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异
在 Git 中的绝大多数操作都只需要访问本地文件和资源,不用连网。但如果用 CVCS 的话,差不多所有操作都需要连接网络。因为 Git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。
举个例子,如果要浏览项目的历史更新摘要,Git 不用跑到外面的服务器上去取数据回来,而直接从本地数据库读取后展示给你看。所以任何时候你都可以马上翻阅,无需等待。如果想要看当前版本的文件和一个月前的版本之间有何差异,Git 会取出一个月前的快照和当前文件作一次差异运算,而不用请求远程服务器来做这件事,或是把老版本的文件拉到本地来作比较。
用 CVCS 的话,没有网络或者断开 VPN 你就无法做任何事情。但用 Git 的话,就算你在飞机或者火车上,都可以非常愉快地频繁提交更新,等到了有网络的时候再上传到远程仓库。同样,在回家的路上,不用连接 VPN 你也可以继续工作。

以上是git的简介。其实大部分是百度来的。没关系,至少我认真看了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值