本文作者黃昱俊,國(guó)資企業(yè)投資部總經(jīng)理,主要負(fù)責(zé)投資部門建設(shè)、投資流程管理、投后資源管理。歷經(jīng)10年,從醫(yī)療器械研發(fā)工程師到投資管理的蛻變,業(yè)余嘗試ETF量化投資。
本文介紹如何在GitHub上更新Fork以及PullRequest給源項(xiàng)目。
在GitHub上更新Fork
經(jīng)常遇到的是Fork一個(gè)項(xiàng)目之后,源項(xiàng)目的作者做了新的更改,如果沒(méi)有同步到我自己的Fork,我所做的更新進(jìn)行Pull Request后,會(huì)產(chǎn)生沖突;因此在更新文件之前、至少是Pull Request之前,應(yīng)當(dāng)要更新自己的Fork的。
更新Fork的方法有很多,Git寫代碼是很好的,當(dāng)小白通常比較難做,步驟缺了就經(jīng)常不奏效;所以我自己親測(cè)了一個(gè)GitHub上更新Fork的方法,做一個(gè)教程,與朋友們共勉;廢話少說(shuō),步驟如下。
一、進(jìn)入自己Fork來(lái)的項(xiàng)目,按New Pull Request按鈕,新建一個(gè)Pull Request(簡(jiǎn)稱:PR)。

二、如果自己還沒(méi)有修改過(guò)Fork項(xiàng)目的文件,那么此時(shí)可以點(diǎn)擊switching the base,切換到基于我自己的Fork項(xiàng)目。

如果已經(jīng)修改或更新過(guò)Fork項(xiàng)目的文件,那么可以通過(guò)選擇Base Fork和Head Fork來(lái)從源項(xiàng)目更新到我自己的Fork項(xiàng)目。


這里有個(gè)小技巧:在默認(rèn)狀態(tài)下,會(huì)是Base源項(xiàng)目,Head我自己的Fork項(xiàng)目;這樣選擇任何一個(gè)時(shí),會(huì)調(diào)到某個(gè)無(wú)法更新的頁(yè)面;解決方法是先Base或Head一個(gè)其他人的賬號(hào)下的Fork,接著選擇Head/Base源項(xiàng)目或我自己的Fork項(xiàng)目,這樣就不會(huì)出現(xiàn)Base和Head都是自己或者都是源項(xiàng)目的情況。
三、Base和Head設(shè)置完,就進(jìn)入Comparing Changes頁(yè)面,確認(rèn)一下Base和Head,以及最新的更新內(nèi)容。

內(nèi)容沒(méi)問(wèn)題就Create PR了,即上圖綠色箭頭所指向的綠色按鈕;接著輸入主題,Create。

四、新Create的PR在哪里可以找到呢?進(jìn)入我自己的Fork項(xiàng)目,導(dǎo)航條上的PR進(jìn)入,看到Open的有一個(gè),就是剛才更新的。

點(diǎn)擊進(jìn)入確認(rèn)一下。

五、把源項(xiàng)目的更新Merge到我的Fork項(xiàng)目。

Confirm Merge,確定這個(gè)更新;

可以看到,這個(gè)PR已經(jīng)更新完成,呈紫色的Merge狀態(tài)。

六、最后驗(yàn)證一下是否更新到最新的項(xiàng)目,因?yàn)橐阎歉铝薖attern Recognition,所以直接進(jìn)入。

查看到下面5個(gè)是最新修改的,15個(gè)小時(shí)之前修改了內(nèi)容。

至此整個(gè)更新Fork的方法步驟已完成,玩得愉快!
將更新的Fork項(xiàng)目PullRequest給源項(xiàng)目
我們Fork項(xiàng)目之后進(jìn)行了修改或添加新文件,需要Pull Request(簡(jiǎn)稱:PR)給源項(xiàng)目,讓作者M(jìn)erge融入到他的源項(xiàng)目里。
在PR之前,甚至開(kāi)始修改或創(chuàng)建新文件之前,先看看源項(xiàng)目是否有更新,如有更新,可按第一部分內(nèi)容,先更新自己的Fork項(xiàng)目,再做創(chuàng)建新文件,老司機(jī)說(shuō)這樣沖突比較少。
一、看到別人的好項(xiàng)目,如何“據(jù)為己有”?Fork一下咯!

點(diǎn)擊Fork,會(huì)進(jìn)入Fork進(jìn)行中的界面;

Fork完成后,可以在自己的主頁(yè)(Your Profile)看到Fork的項(xiàng)目。

二、可以通過(guò)Create new file或upload file新建或上傳文件,要注意的是:上傳的文件會(huì)把原來(lái)同名文件覆蓋掉!

這里的會(huì)有文件上傳的進(jìn)度條,如下圖:共13個(gè)文件,已上傳9個(gè);上傳完成的文件會(huì)在下方顯示。

這個(gè)上傳文件由于服務(wù)器在國(guó)外的緣故,死慢死慢,經(jīng)常就廢了,如下圖。

當(dāng)看到下面這個(gè)Processing your files…頁(yè)面,那就恭喜你了,經(jīng)過(guò)幾十次的上傳,總算work了;如果出現(xiàn)一片空白的頁(yè)面,那么只好重復(fù)choose your files,再次Confirm Changes。

三、新建PR:可以在Fork項(xiàng)目的根目錄下,或者任意的目錄下,Pull Request。


Pull Request后會(huì)進(jìn)入Comparing changes頁(yè)面,核對(duì)一下Base Fork和Head Fork(藍(lán)色圓圈)、以及更新的內(nèi)容(紫色方框);由于已經(jīng)更新過(guò)最新的源項(xiàng)目?jī)?nèi)容,與源項(xiàng)目同步好了,所以此時(shí)顯示“Able to merge”(紅圈綠字);一切就緒,點(diǎn)擊Create創(chuàng)建PR。

輸入主題,并Create PR;

這時(shí)可以看到已經(jīng)將這個(gè)更新PR給源項(xiàng)目作者,PR序號(hào)為#52,狀態(tài)open。

四、源項(xiàng)目作者M(jìn)erge此PR,將此次的更改融入到源項(xiàng)目,并形成Commits記錄。

序號(hào)#52的PR已經(jīng)Merge:

進(jìn)入源項(xiàng)目,查看Commit記錄:


至此,整個(gè)Fork、修改或創(chuàng)建文件、Pull Request以及Merge的步驟已完成,玩的愉快!
-
代碼
+關(guān)注
關(guān)注
30文章
4976瀏覽量
74363 -
GitHub
+關(guān)注
關(guān)注
3文章
489瀏覽量
18759
原文標(biāo)題:如何更好地玩轉(zhuǎn)GitHub?
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
教你如何快速在Github上為RT-Thread貢獻(xiàn)代碼
關(guān)于 fork 和 exec 是如何在 Unix 上工作的
Github發(fā)布史上最大更新
如何在esp32板子上實(shí)現(xiàn)自己的web_radio
分享幾個(gè)在GitHub上嵌入式相關(guān)的開(kāi)源項(xiàng)目
開(kāi)源深度學(xué)習(xí)庫(kù)排名三個(gè)重要指標(biāo):Github上的活動(dòng)、Stack Overflow上的活動(dòng)以及谷歌搜索結(jié)果
github入門到上傳本地項(xiàng)目步驟
github使用教程_github菜鳥(niǎo)教程
2018 年 2 月份 GitHub 上最熱門的開(kāi)源項(xiàng)目
如何為GitHub這些項(xiàng)目貢獻(xiàn)代碼呢?
GitHub發(fā)布史上最大更新
對(duì)“Fork”做一個(gè)技術(shù)方面的簡(jiǎn)介
GitHub宣布開(kāi)放無(wú)限私有存儲(chǔ)庫(kù)以及限時(shí)訪問(wèn)GitHub Actions
如何精準(zhǔn)地在GitHub搜索項(xiàng)目
Python監(jiān)控Github項(xiàng)目如何更新并自動(dòng)下載
如何在GitHub上更新Fork以及PullRequest給源項(xiàng)目
評(píng)論