2. 抓取分支
多人协作时,大家都会往 master 分支上推送各自的修改。现在我们可以模拟另外一个同事,可以在另一台电脑上(注意要把 SSH key 添加到 github 上)或者同一台电脑上另外一个目录克隆,新建一个目录名字叫 testgit2
但是我首先要把 dev 分支也要推送到远程去,如下
接着进入 testgit2 目录,进行克隆远程的库到本地来,如下:
现在目录下生成有如下所示:
现在我们的小伙伴要在 dev 分支上做开发,就必须把远程的 origin 的 dev 分支到本地来,于是可以使用命令创建本地 dev 分支:
git checkout –b dev origin/dev
现在小伙伴们就可以在 dev 分支上做开发了,开发完成后把 dev 分支推送到远程库时。
如下:
小伙伴们已经向 origin/dev
分支上推送了提交,而我在我的目录文件下也对同样的文件同个地方作了修改,也试图推送到远程库时,如下:
由上面可知:推送失败,因为我的小伙伴最新提交的和我试图推送的有冲突,解决的办法也很简单,上面已经提示我们,先用 git pull
把最新的提交从 origin/dev
抓下来,然后在本地合并,解决冲突,再推送。
git pull
也失败了,原因是没有指定本地 dev 分支与远程 origin/dev
分支的链接,根据提示,设置 dev
和 origin/dev
的链接:如下:
这回 git pull
成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的 解决冲突完全一样。解决后,提交,再 push:
我们可以先来看看 readme.txt 内容了。
现在手动已经解决完了,我接在需要再提交,再 push 到远程库里面去。如下所示:
因此:多人协作工作模式一般是这样的:
- 首先,可以试图用
git push origin branch-name
推送自己的修改。 - 如果推送失败,则因为远程分支比你的本地更新早,需要先用
git pull
试图合并。 - 如果合并有冲突,则需要解决冲突,并在本地提交。再用
git push origin branch-name
推送。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论