Github 组队协作补充

目标:

Github 组队协作

步骤:

1.可以看到主程的代码jdstore是从quanzhanying fork过来的

Screenshot at Mar 06 12-12-25.pngScreenshot at Mar 06 12-12-25.png

2.主程邀请副程,副程在github上会收到通知

接受邀请

WechatIMG4.jpegWechatIMG4.jpeg

在副程的github上也可以看到主程的代码是从quanzhanying fork过来的

WechatIMG5.jpegWechatIMG5.jpeg


3.副程clone主程的代码下来
查到origin的地址是从主程那fetch过来的,副程重新切了一个分支出来做

WechatIMG6.jpegWechatIMG6.jpeg


副程将做好的分支push到github后,点击“Compare & pull request”
WechatIMG7.jpegWechatIMG7.jpeg

可以看到base fork quanzhanying,head fork 主程。并在框中输入做了哪些修改

WechatIMG8.jpegWechatIMG8.jpeg

点击“Create pull request”后,发现推送到了quanzhanying

WechatIMG9.jpegWechatIMG9.jpeg

这个并不是我们想要的

4.主程打开自己的github,可以看到副程提交的分支

Screenshot at Mar 07 17-51-50.pngScreenshot at Mar 07 17-51-50.png

切换到副程的分支后却发现无法merge
Screenshot at Mar 07 18-13-43.pngScreenshot at Mar 07 18-13-43.png

解法:

1.主程点击“New pull request”,会转成以下画面。把base fork点选主程的repo

Screenshot at Mar 07 18-24-35.pngScreenshot at Mar 07 18-24-35.png

2.可以看到页面跳转成如下。
①确认已经转到主程的repo;
②base选择你想要merge的分支,可以选择“master”(一般正式协作会另外创建一个develop分支,把开发的进度放到develop,master一般于production环境);
③compare选择副程的分支名;
④查看是否是“Able to merge”状态;
⑤写下你的comment。
确认以上五点后,点击“Create pull request”

Screenshot at Mar 07 18-27-05.pngScreenshot at Mar 07 18-27-05.png

3.主程点击“Merge pull request”

Screenshot at Mar 07 18-28-03.pngScreenshot at Mar 07 18-28-03.png

4.主程点击“Comfirm merge”

Screenshot at Mar 07 18-28-32.pngScreenshot at Mar 07 18-28-32.png

5.这样副程的最新代码就merge到了master分支上

那么主程如何得到最新的代码呢?
1.主程checkout回master分支,然后运行git fetch
那么主程得到的代码也就是最新的了

但是正确的做法应该是主程checkout一个develop分支。

(develop分支主要用于大家的开发使用,master用作于production环境。)
1.主程把develop分支创建好后,push到github上
2.主程再从develop分支checkout新的分支来做
3.副程pull主程的develop分支上下(假定目前develop分支已经是最新的分支),在本地再重新checkout出新的分支来做
4.副程做了新的功能重新push上去,在主程的github上可以看到新的分支

Screenshot at Mar 07 20-34-28.pngScreenshot at Mar 07 20-34-28.png

5.依据前面的方式,把副程的最新分支merge到develop分支上
Screenshot at Mar 07 20-38-40.pngScreenshot at Mar 07 20-38-40.png


6.同样的方式,把主程最新的分支也merge到develop分支上
Screenshot at Mar 07 20-41-47.pngScreenshot at Mar 07 20-41-47.png

7.每次主程merge完之后,主程和副程都要记得重新pull最新的develop分支下来。然后再checkout新分支出来做

Screenshot at Mar 07 20-46-13.pngScreenshot at Mar 07 20-46-13.png

Screenshot at Mar 07 20-46-13.pngScreenshot at Mar 07 20-46-13.png

看到最后的有惊喜,介绍一个好工具——SourceTree

可以很清楚的看出每一个commit
Screenshot at Mar 07 20-47-54.pngScreenshot at Mar 07 20-47-54.png