GIT工作协同

多用户协同的本地模拟
先在本地模拟一个能让多人访问的版本库,用/path/to/user1/workspace和/path/to/user2/workspace代表不同用户的工作环境,下面演示一个共享的版本库的搭建过程,以及两用户之间如何进行数据交换的。

(1)在/path/to/repos/shared.git中创建一个共享的版本库。

 $ git init --brae /path/to/repos/shraed.git

(2)用户user1克隆版本库。

$ cd /path/to/user1/workspace
$ git clone file:///fath/to/repos/shared.git project

(3)设置user.name和user.email配置变量。

(4)用户user1创建初始数据并提交。

$ echo hello. > README
$ git add README
$ git commit -m "initial commit."

(5)用户user1推送到上游。

$ git push origin master

(6)用户user2克隆版本库。

$ cd /path/to/user2/workspace
$ git clone file:///fath/to/repos/shared.git project

强制非快进式推进
若两用户
首先,用户user1推送到”远程”版本库。用户user1创建team/user1.txt文件,然后将本地提交推送到服务器上。

$ cd /path/to/user1/workspace/project/
$ mkdir team
$ echo "user1." > team/user1.txt
$ git add team 
$ git commit -m "user1's profile."
$ git push

若用户user2不知道user1所做的上述操作,仍然基于”远程”版本库旧数据同步而来的版本库中进行修改,然后user2也推送。用户user2创建创建team/user2.txt文件,然后将本地提交推送到服务器上,会怎样呢?

$ cd /path/to/user2/workspace/project/
$ mkdir team
$ echo "user2." > team/user1.txt
$ git add team 
$ git commit -m "user2's profile."
$ git push

这时推送失败了,避免了用户提交的相互覆盖。git通过检查推送操作是不是快进式推送。一般情况下,推送只允许快进式推送。所谓快进式推送,即运程版本库相应分支的最新提交是本地版本库最新提交的祖先提交。可用下面的命令实行强制推送,会强制刷新服务器中的版本。

$ git push -f

合并后推送
若用户user1发现在推送过程中遇到了非快进式的推送错误,可以通过如下操作将本地版本库的修改和远程版本库中的最新提交进行合并。

$ cd /path/to/user1/worspace/project/
$ git pull
$ git push
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值