集中式版本控制系统采用中央服务器上存储的所有文件和实现团队协作。但是CVCS主要缺点是中央服务器的单点故障,即故障。不幸的是,如果中央服务器宕机一小时,然后在该时段没有人可以合作。即使在最坏的情况下,如果中央服务器的磁盘被损坏,并没有采取适当的备份,那么将失去整个项目的历史。 DVCS客户不仅检出的最新快照目录,但他们也完全反映资源库。如果SEVER停机,然后从任何客户端库可以复制回服务器,以恢复它。每个结账是完整的版本库备份。 Git不会依赖中央服务器,这就是为什么可以执行许多操作,当处于脱机状态。可以提交修改,创建分支视图日志和执行其他操作,当处于脱机状态。只需要网络连接,发布您的更改,并采用最新变化。
这是git和SVN最根本的差别,SVN实际上搭建的是一个安放代码的服务,工作人员可以对其进行上传下载跟新等操作,而git作为一个分布式服务,每个工作者平时操作的都是本地的分支,提交的也是本地的代码库,在多个机子上储存代码,断网也可以操作.因为本地代码库的存在,平时合作提交代码时也不要过分担心删除或者误跟新操作,别人的电脑上会有代码备份.
先了解区别有助于对git的操作先一步了解.既然要实现分布式提交,首先理解git的本地代码库和分支概念,SVN想要提交代码只需要commit就可以提交到服务器,而git中的commit只能提交到本地的的代码库,本地代码库接收更新后用push命令将本地代码库同步到远程.而分支是我们平时要创建新代码时,通常先新建一个分支,完成编写后将其合并到master上面并删掉当前分支.
讲得再多不如操作一次:
1.安装git
2.打开git bash
3.如果要新建版本库,找一个目录:
git init
4.新建文件并提交
git add read.txt git commit read.txt -m "new file"
5.查看更改的内容
git diff read.txt
6.我们有可能需要回撤到某一个代码版本
git reset –hard 版本号
7.获得版本号
git reflog
8.如果需要将远程目录克隆到本地
git clone http://******
9.创建分支
git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令 git branch a git checkout a
10.合并分支
git merge a
11.删除分支
git branch –d a
12.有时候本地分支与要提交的远程分支不一样更新和提交操作(pull和push可以带分支参数):
git pull origin master git push origin master
13.切换分支
git checkout origin
这个东西说起来都是扯.操作几遍才能更好理解,还要勤加练习.