在日常开发中,我们通常不是一个人独立完成一个项目,而是由一个团队来一起完成一个项目,那么当我们分开开发时如何将我们的代码实时更新,并且统筹到一起呢?这就用到了我们的git团队内协作。
在之前的学习中,我们已经引出了远程仓库的概念。
情景一:
A将自己的代码写好了,需要将自己的代码推到自己的远程仓库中。(这里我们用github为大家演示)
- 首先A需要先在自己的github上新建一个仓库。
进行到这一步,A已经拿到了这个仓库的链接啦,通常使用SSH。 - 仓库建好了之后A就可以将自己的项目推到仓库中了。
这时候我们刷新一下仓库,发现我们的仓库中已经有了我们的代码啦!
情景二:
这时候我们需要B对A的代码进行改进。
B要做的第一步就是拿到代码,这时候B本地是空白的,需要将A的远程仓库中的代码clone到本地。
要想克隆远程仓库中的代码,首先应该拿到远程仓库的链接。
建立一个空的文件夹并且进入git窗口,运行克隆命令,之后代码就被克隆到本地的文件夹了。
情景三:
B对A的代码进行修改,然后想要将完善之后的版本推送到远程仓库中,这时候发现使用push命令后没能成功推送,需要进入到A的团队中才能更新远程仓库中的代码。
- A在仓库中找到settings的Collaborators,通过用户名查找来添加团队成员。
- 这时候A的页面会出现一个“邀请函”,这个邀请函其实就是个链接。
- A将这个邀请函给到B,这个时候B在自己的github账号地址栏处搜索这个邀请函,就可以看到来自A的邀请函,
- 点击接受按钮,这时候B就加入了A的团队协作,并且在B的git账号中就会出现远程仓库。
这时候,B通过push命令就可以将修改后的代码推送到远程代码库了。
情景四:
A知道了B更改了代码之后,此时A的本地仓库的代码与远程仓库中的代码已经不一致了,A想要更新一下自己的本地仓库。
- 借助pull命令就可以将远程仓库中的代码更新到本地的仓库中了
- pull和fetch的区别,pull实现了一个合并的功能,等于fetch+merge
- pull和clone的区别,pull实现了更新,而clone实现的是从无到有的建立
这四个情景涵盖了团队内协作的基本操作。