Github團(tuán)隊(duì)協(xié)作之Pull請(qǐng)求
作者:佚名
首先聲明:Github上關(guān)于代碼團(tuán)隊(duì)協(xié)作方式有很多種,這里只講述Github上其中的一種代碼團(tuán)隊(duì)協(xié)作方式。
首先聲明:Github上關(guān)于代碼團(tuán)隊(duì)協(xié)作方式有很多種,這里只講述Github上其中的一種代碼團(tuán)隊(duì)協(xié)作方式。
Pull請(qǐng)求(Pull request)
1 綜述
協(xié)作者通過fork一個(gè)新的代碼庫(kù)用來獨(dú)立開發(fā),并通過Github上的Pull Request,將變更貢獻(xiàn)回原始代碼庫(kù)。這其中對(duì)Github的要求較低,至少免費(fèi)使用,操作也相對(duì)簡(jiǎn)單,是一種不錯(cuò)的協(xié)作方式。以下將圖文并茂的展示整個(gè)協(xié)作過程!
2 步驟
2.1 Fork拷貝原始代碼倉(cāng)庫(kù)
首先在原始代碼庫(kù)的Github網(wǎng)頁上Fork其代碼倉(cāng)庫(kù),此時(shí)會(huì)在自己的Github上生成原始代碼庫(kù)的一份拷貝。注意這里有兩種用戶:原始代碼倉(cāng)庫(kù)擁有者和Fork代碼倉(cāng)庫(kù)擁有者。
- 輸入原始代碼庫(kù)網(wǎng)址
- 點(diǎn)擊網(wǎng)頁上的Fork按鈕,拷貝原始代碼倉(cāng)庫(kù),此時(shí)會(huì)跳轉(zhuǎn)到自己的Github賬號(hào)頁面上。
2.2 克隆Fork代碼倉(cāng)庫(kù)到本地
接下來使用git clone命令克隆一份Fork代碼庫(kù)到本地計(jì)算機(jī)。
-
git clone git@github.com:HengStruggle/GitTest.git
進(jìn)入到克隆下來的Git代碼庫(kù)里,可對(duì)文件進(jìn)行修改,***在提交到本地代碼倉(cāng)庫(kù)。
-
cd GitTest //進(jìn)入到克隆下來的Git代碼庫(kù)里
打印GitTest.txt文件內(nèi)容,并在文件尾添加自己的用戶名,***再提交到本地代碼倉(cāng)庫(kù)。說明:一個(gè)較好的習(xí)慣是在master上另建一個(gè)分支,再進(jìn)行修改,***再提交新建的分支;主分支用于存儲(chǔ)原始代碼倉(cāng)庫(kù)的代碼
1 cat .\GitTest.txt 2 "version 0.2 by HengStruggle">>.\GitTest.txt 3 git commit --all -m "version 0.2"
2.3 Push 本地代碼倉(cāng)庫(kù)到Github代碼倉(cāng)庫(kù)
接下來將本地代碼倉(cāng)庫(kù)推送到Github上的Fork代碼倉(cāng)庫(kù)上,注意不是原始代碼倉(cāng)庫(kù)。
-
git push -u origin master
2.4 ***一步:Pull request
進(jìn)入我們fork的代碼庫(kù)的GitHub頁面,選擇需要提交給原始代碼倉(cāng)庫(kù)的分支,然后點(diǎn)擊Pull Request按鈕,再點(diǎn)擊new pull request按鈕,***再確認(rèn)。如圖1,圖2,圖3。至此你作為協(xié)作者的任務(wù)已經(jīng)完成,接下來的事就是等待原始倉(cāng)庫(kù)擁有者合并你提交的代碼。

圖1

圖2

圖3
2.5 原始倉(cāng)庫(kù)擁有者合并收到的Pull請(qǐng)求
作為原始倉(cāng)庫(kù)擁有者有兩種方式合并收到的Pull請(qǐng)求。說明:推薦在本地計(jì)算機(jī)上進(jìn)行合并方式,靈活性較強(qiáng)。
2.5.1 在GitHub上合并
- Github上合并,首先要找到合并頁面。進(jìn)入合并頁面的方式有多種,其中一種可以打開Github上主頁面,點(diǎn)擊左上角的鈴鐺圖標(biāo),可以查看最近收到的Pull請(qǐng)求;另外在主頁左邊也可以直接查看別人的請(qǐng)求信息。如圖4。
- 確保沒有沖突之后,點(diǎn)擊Merge pull request按鈕,如圖5。
- ***合并成功,如圖6。
- 注意:在GitHub上進(jìn)行合并,必須確保沒有沖突產(chǎn)生
2.5.1 在本地計(jì)算機(jī)上進(jìn)行合并
- 合并前先在本地倉(cāng)庫(kù)里新建一個(gè)分支
-
git checkout -b HengStruggle-master master
-
- 拉取協(xié)作者遠(yuǎn)程倉(cāng)庫(kù)的Pull請(qǐng)求分支到本地倉(cāng)庫(kù),注意這里的Pull請(qǐng)求分支不一定總是master,要視具體情況而定。注意:這里拉取的是協(xié)作者的代碼倉(cāng)庫(kù)的Pull請(qǐng)求分支!
-
git pull https://github.com/HengStruggle/GitTest.git master
-
- 常規(guī)的合并分支并Push代碼
1 git checkout master 2 git merge --no-ff HengStruggle-master 3 git push origin master

圖4

圖5

圖6
責(zé)任編輯:李英杰
來源:
博客園