集中式版本控制系统采用*服务器上存储的所有文件和实现团队协作。但是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
这个东西说起来都是扯.操作几遍才能更好理解,还要勤加练习.