版本控制学习心得
CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?
先说集中式版本控制系统,版本库是集中存放在中央服务器的,要先从中央服务器取得最新的版本,然后再把自己的代码推送给中央服务器。
集中式版本控制系统最大的缺点在于必须与中心服务器联网才能工作。
其次,集中式的版本控制是通过比较文件变化,如果把本地的文件全部删除再重新从服务器上获取的话,这个过程是相当费时,也很伤硬盘,因为所有的文件都要通过网络传一次。
在实际的开发过程中,我们会在自己的电脑上进多次小修小改,但是又担心不好恢复,为了保险起见,经常会有一些临时性的提交。这样一来,在中心服务器上的版本记录就会变得很频繁,它看起来就像是下面这样子:
这样做的恶果就是中心服务器的硬盘使用非常密集,文件增长也非常明显。如果同时有多人提交的代码,会明显感觉服务器非常的慢,而且版本号非常密集,其它人要找出他想要的某一个版本不是非常容易的事。
那分布式版本控制系统与集中式版本控制系统有何不同呢?
首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。
其次,和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。
分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活。
当然,Git的优势不单是不必联网这么简单,Git极其强大的分支管理,把SVN等远远抛在了后面。所以,我是极力推荐git进行版本控制的。
听说Git最初是从linux上发展起来的,那么Git安装和使用是不是比SVN要麻烦许多呢?
一开始呢,我看到那个黑乎乎的字符操作界面,心想这下完了,这git的学习成本一定很高。其实不然,如果不喜欢,它同样也有图形界面的。
而且界面似乎比小乌龟(TortoiseSVN)还要简洁些。
怎么安装Git?
搜索msysgit 下载,选一个最新的版本下载即可。下载下来,就是双击msysgit.exe,一路下一步即。
怎么使用?
这分两种情况,如果是用字符界面。常用的就以下几个命令:
1. git add 添加要进行版本管理的文件,后面可以跟具体的文件名,也可以用一个点号"."代替全部
2. git commit 提交到本地(缓存区),常跟一个参数 -m 用来添加本次提交的说明文字。
3. git push 发布一个版本到”中心服务器“
更多命令参照这个中文教程,狂点链接 http://www.liaoxuefeng.com 是我认为git中讲的最好的中文版本。
图形界面,就更简单了,其实就是对应上面几个命令,点几下相应的按钮,想必是大家都懂的。
依次点击: 扫描-->缓存改动-->提交,上传的话,你可以在确定要发布到中心服务器去的时候才点。
最后小结一下:
git的命令行确实很方便,多练几次,熟能生巧。图形界面看到的中文注释是乱的,需要改一下git的编码为utf-8,操作为:编辑-->选项 ,把Default File Contents Encoding:点Change,选utf-8 .保存,重新打开就正常了。
git push 之前,需要设置好公钥,否则会发布不上去的。
版本的历史记录,版本差异对比,用图形方式更加直观,添加注释也更方便。对于windows的重度用户来说更加友好。
git 在版本管理上的效率真的是相当的快,几乎看不到SVN 上那种刷刷地下载的过程。这是由于它先进的设计理念所决定的。
本文系原创,如果喜欢就砸个”赞" 吧!