多人协作
本节将介绍一个多人协作的例子。
假设 http://x.x.x.x:xx/pshizh/learngit.git 是一个远程空仓库。
1、A主机初始化远程仓库
首先,在A主机上新建一个learngit仓库,创建master分支与dev分支
$ mkdir learngit
$ cd learngit
$ vi readme.md
$ git init
$ git add *
$ git commit -m "initialization"
$ git branch dev
然后同步到远程的learngit仓库
$ git remote add origin http://x.x.x.x:xx/pshizh/learngit.git
$ git checkout master
$ git push -u origin master
$ git checkout dev
$ git push -u origin dev
2、B主机克隆远程仓库
在B主机上克隆远程仓库的master分支下来
$ git clone http://x.x.x.x:xx/pshizh/learngit.git
再拉取远程仓库的dev分支下来
$ cd learngit
$ git pull origin dev:dev
3、A主机修改master分支
A主机修改master分支下的readme.md文件,然后commit、pull并push
$ git checkout master
$ vi readme.md
$ git add readme.md
$ git commit -m "conficted line by A"
$ git pull
$ git push
说明,最后两行 git pull
与 git push
其实等价于 git pull origin master
与 git push origin master
, 由于在步骤1中第一次push时的命令 git push -u origin master
添加了参数 -u ,相当于把本地的master分支与origin的master分支建立了连接,所以后面再pull与push的时候,就可以省略远程仓库的名字与分支了
4、B主机修改master分支
B主机修改master分支下的readme.md文件,然后commit、pull、处理冲突、push
$ git checkout master
$ vi readme.md
$ git add readme.md
$ git commit -m "conflicted line by B"
$ git pull
# 手动处理冲突
$ git add readme.md
$ git commit -m "conflicted line dealed with"
$ git push
Last updated
Was this helpful?