【Git & Github】(七)Git命令行操作 —— Github远程库操作(邀请远程库协作者、推送和拉取、协作时两种冲突的解决)

0.准备工作

要学习如何在Github上进行团队协作,请注册一个另外的Github账号,方便学习。

这里我注册的新的Github账号为:

在同一台电脑上进行多个Git账号的操作比较麻烦,建议使用虚拟机,在虚拟机中登录另一个账号。

1.协作者将远程仓库克隆到本地

首先,团队的合作者需要将仓库克隆到本地,在上一篇文章中讲述了克隆的好处,这里再次说明:

  • 完成本地库初始化操作;
  • 默认将远程库地址别名设置为origin
  • 默认将远程库的所有内容拉取到本地;

【Git & Github】(七)Git命令行操作 —— Github远程库操作(邀请远程库协作者、推送和拉取、协作时两种冲突的解决)

拉取之后,我们可以进行一切本地库可以进行的操作,比如查看状态,提交更新,查看更新记录等等,这里我们修改文件,并在本地库提交一次更新:
【Git & Github】(七)Git命令行操作 —— Github远程库操作(邀请远程库协作者、推送和拉取、协作时两种冲突的解决)

然后尝试将该提交推送到远程库,发生错误
【Git & Github】(七)Git命令行操作 —— Github远程库操作(邀请远程库协作者、推送和拉取、协作时两种冲突的解决)
这是因为Github上的远程仓库Git_test是归属于mculover666的,这里虚拟机中的mculvoer666-2成员没有权限去修改这个远程仓库,所以操作被禁止。

2.邀请团队成员(协作者)加入

2.1.远程库所有者发送邀请

邀请团队成员加入需要在Github上完成:
【Git & Github】(七)Git命令行操作 —— Github远程库操作(邀请远程库协作者、推送和拉取、协作时两种冲突的解决)
【Git & Github】(七)Git命令行操作 —— Github远程库操作(邀请远程库协作者、推送和拉取、协作时两种冲突的解决)
这里Github已经自动向被邀请者发送了邀请邮件,当然也可以自己复制邀请链接,发送给被邀请者;

2.2.接受邀请

被邀请者收到的邮件信息如下:
【Git & Github】(七)Git命令行操作 —— Github远程库操作(邀请远程库协作者、推送和拉取、协作时两种冲突的解决)
【Git & Github】(七)Git命令行操作 —— Github远程库操作(邀请远程库协作者、推送和拉取、协作时两种冲突的解决)
这样就邀请成功了,再次在命令行中推送一下提交,推送成功
【Git & Github】(七)Git命令行操作 —— Github远程库操作(邀请远程库协作者、推送和拉取、协作时两种冲突的解决)

3.拉取最新更改

这里mculover666-2向远程库提交了更改,mculover666需要将此次修改拉取下来,更新到本地,直接使用拉取命令即可:

【Git & Github】(七)Git命令行操作 —— Github远程库操作(邀请远程库协作者、推送和拉取、协作时两种冲突的解决)

4. 团队协作的冲突及其解决

在团队中所有的协作者同时工作时,会发生两种冲突:

1. 当一个协作者向远程库推送了更新后,其他所有的协作者都不能再做推送,必须先将远程库的最新更新拉取,之后才能推送;

2. 当拉取了远程库的最新内容后,如果修改和本地修改的地方相同,会导致自动合并失败,进入手动合并模式。