Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.
分布式和集中式(eg:svn)的最大区别在于开发者可以本地提交。每个开发者机器上都有一个服务器的数据库。
特点就是本地提交这一步,这样就使每个用户都是git服务器。
Git的功能特性:
从一般开发者的角度来看,git有以下功能:
1:从服务器上克隆数据库(包括代码和版本信息)到单机上。
2:在自己的机器上创建分支,修改代码。
3:在单机上自己创建的分支上提交代码。
4:在单机上合并分支。
5:新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6:生成补丁(patch),把补丁发送给主开发者。
7:看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8:一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
git 结果层次图如下:
下面先演示个例子;
先下载git;下载git
安装后,右键GitBash;这里以github为服务器,需要先去申请一个帐号;
1、右键GitBash界面如下:
2、设置全局信息,个人的用户名及邮件地址
1
2
3
4
5
|
leo@LEO-PC
/D/User/leo/Desktop
(master)
$ git config --global user.name
"lansgg"
#用户名改成你自己的
leo@LEO-PC
/D/User/leo/Desktop
(master)
$ git config --global user.email
"coffee_lanshan@sina.com"
#邮件地址也是
|
3、将github服务器上我的代码clone下来;我的代码项目为test,clone地址见下图红线,我的项目里面本来就有两个文件
4、进入该test目录,本目录已经是git repository (本地仓库);
1
2
3
4
5
6
|
leo@LEO-PC
/D/User/leo/Desktop
(master)
$
cd
test
/
leo@LEO-PC
/D/User/leo/Desktop/test
(master)
$
ls
README hello.rb
|
可以看到我线上仓库的两个文件
5、随便新建一个文件
1
2
3
4
5
|
leo@LEO-PC
/D/User/leo/Desktop/test
(master)
$
touch
test
.
file
leo@LEO-PC
/D/User/leo/Desktop/test
(master)
$
echo
"this is a test file "
>
test
.
file
|
6、将文件添加到上传队列;加入staging area
1
|
$ git add
test
.
file
|
7、缓存提交,引号中的是对本次提交的描述,必须填写,不能为空;将staging area 提交到repository
1
|
$ git commit -m
"test commit"
test
.
file
|
8、将代码push到线上repository
1
2
|
$ git remote add origin https:
//github
.com
/lansgg/test
.git
#此为我们刚才clone的url
$ git push origin master
#会需要你输入你的github帐号和密码
|
9、现在看看线上仓库
同步成功;