一、前言
昨晚應老師要求參與教材的修正工作,需要涉及到github上的PR(Pull Request)操作。本來以為很簡單的一個事情,沒想到還得讓我翹課,花了一個多小時的時間才搞明白,收獲挺多。飯先不吃,先寫博客,分享出來。
二、實現步驟
簡單暴力的實現步驟,先不做太深入的細節分析。
為了敘述方便,特此聲明:
此處小明要與小紅進行合作,小明需要對小紅在GitHub上的的Repository進行fork等一系列的操作。
2.1 將小紅在GitHub上的Repository clone到小明的本地電腦
這一步看起來很簡單事實上涉及到一個細節,我之前一直都忽略了。
上圖:
2.1.1 fork小紅在GitHub上的Repository到小明的GitHub
此操作的作用是將k小紅在GitHub上的Repository到小明的GitHub,這時小明的GitHub上多了一個fork的Repository;
如下圖:
2.1.2 clone小明的GitHub Repository到小明的本地電腦
打開剛才fork的Repository,復制該Repository的SSH使用命令
git clone git@github.com:GaoZiqiang/firstGit.git
clone到小明的本地電腦;
2.2 與小紅在GitHub上的的Repository建立新的鏈接
2.2.1查看當前鏈接情況
使用
git remote -v
命令查看一下小明的本地Repository與哪些遠程倉庫建立了鏈接,你會發現:只與小明在GitHub的Repository建立了鏈接,很顯然沒有與小紅在GitHub上的Repository建立鏈接,如下圖:
2.2.2 與小紅的GitHub上的Repository建立鏈接
現在使用命令
git remote add upstream https://github.com/timo1160139211/firstGit.git
與小紅在GitHub上的Repository建立鏈接,注意此處的SSH為小紅的GitHub上的Repository的SSH;
查看:
upstream
2.3 修改Commit
2.3.1 新建工作分支
使用命令:
git checkout -b xiaoming-branch
新建並切換到新建的分支 xiaoming-branch;
使用命令:
git branch
查看當前所在分支。
2.3.2 修改
比如新建文件PRTest;
2.3.3 提交
使用 git add PRTest ,git commit ,git push等系列命令提交到小明的GitHub上的Repository(一定注意,是小明的)
2.4 發起PR(Pull Request)
2.4.1 Comparing changes
a.到小明的GitHub的Repository上點擊Pull Requests,再點擊New pull requests按鈕;
如下圖:
b.進入Comparing changes界面。
2.4.2 Create pull request
a.點擊Create pull request按鈕;
b.填寫相關信息,在點擊Create pull request按鈕即可。
2.4.3 Merge
這是小紅的任務了。
// 移除本地關聯
git remote rm origin
三、個人總結
需要注意的細節主要有以下幾點:
- fork這個操作的一系列細節;
- 與兩個遠程倉庫分別建立鏈接;
- 將修改提交到自己的遠程倉庫;
- Compare需要注意。
四、待解決問題
- 如何同步遠程倉庫(參見下一篇博客);
- Merge時出現沖突如何處理。