從0開始到提交PR至OpenHarmony源倉庫超詳細(xì)教程
??想了解更多關(guān)于開源的內(nèi)容,請訪問:??
前言
想要在開源社區(qū)中貢獻(xiàn)自己的代碼,學(xué)會提交PR是必不可少的,下面這篇文章就帶大家從零開始,一步一步帶大家使用Git命令提交PR。
下面我就以我們實(shí)驗(yàn)室在SIG下的子倉庫作為PR提交對象,來作為本次的教學(xué)案例。
相關(guān)術(shù)語
下面是這次文章中提到相關(guān)的Git命令或者術(shù)語解釋,如果看著有疑惑可以翻回來看看。
- init:初始化空倉庫。
- fork:指的是從源倉庫中復(fù)制一份拷貝到自己賬號下的遠(yuǎn)程倉庫,在這個時間節(jié)點(diǎn)下兩者的內(nèi)容一致; 后續(xù)需要不斷的手動完成同步。
- clone:指的是將開源倉庫下載到本地。
- add:該命令作用是將修改的內(nèi)容寫入暫存區(qū)。
- commit:指的是將暫存區(qū)里的改動給提交到本地的版本庫,也就是將改動的內(nèi)容在本地生成一次記錄。
- push:指的是將自己的修改記錄(commit)提交到本人賬號的遠(yuǎn)程倉庫下。
- pr:指的是將自己的修改從自己的遠(yuǎn)程倉庫下提交到源倉庫下。
環(huán)境準(zhǔn)備
1、創(chuàng)建Gitee賬號,并且綁定郵箱
這一步進(jìn)入Gitee官網(wǎng)進(jìn)行注冊,然后在設(shè)置中綁定郵箱即可,就不過多贅述。
2、簽署DCO協(xié)議
這是一個開發(fā)者原創(chuàng)聲明,在提交到OpenHarmony倉庫的時候,官方檢測人員會有DCO的檢測。
這里注意簽署的郵箱是Gitee綁定的郵箱即可。
簽署DCO (openharmony.cn)。
(三) fork遠(yuǎn)程倉庫
進(jìn)入我們STZU_FSR_lab_for_OpenHarmony官方主倉contest,點(diǎn)擊fork即可將代碼拉到我們自己的遠(yuǎn)程倉庫。
接著選擇自己的目標(biāo)倉庫就完成了。
下載Git
首先是下載Git,這部分網(wǎng)上很多資料,就不過多贅述。
下載好后,我們就可以使用git bash來拉取倉庫到本地,以及上傳等操作了。
克隆文件到本地并且將修改上傳至遠(yuǎn)程倉庫
1、克隆遠(yuǎn)程倉庫到本地(Clone)
我們先右鍵選擇一個要存放遠(yuǎn)程倉庫內(nèi)容的空文件夾,選擇Git Bash Here。
在遠(yuǎn)程倉庫中負(fù)責(zé)下載地址,如下圖:
接著輸入:
$ git clone + 下載地址
我們就可以將遠(yuǎn)程倉庫的內(nèi)容下載到本地。
2、暫存修改內(nèi)容到暫存區(qū)(add)
這里我已經(jīng)對文檔做了一點(diǎn)修改,然后我們就將修改提交到暫存區(qū)。
還是像上一步一樣打開我們的git bash。
輸入:
$ git add .
該命令會監(jiān)控工作區(qū)的狀態(tài)樹,使用它會把工作時的所有變化提交到暫存區(qū)。
3、生成修改記錄并且備注說明(commit)
接著我們輸入如下命令,將暫存區(qū)的內(nèi)容生成一次修改記錄。
$ git commit -s -m “添加視頻鏈接”
- -s作用是添加署名。
- -m 參數(shù)表示可以直接輸入后面的“message”。
這里注意一定要加-s,否則無法通過官方倉庫門禁檢測。
4、上傳到個人的遠(yuǎn)程倉庫(push)
輸入一下命令,然后等待上傳即可。
$ git push origin HEAD
看到這樣,我們就算是上傳成功了!
接著我們回到網(wǎng)頁里面查看遠(yuǎn)程倉庫,可以看到確實(shí)有剛剛的提交記錄,并且文檔也確實(shí)修改了,到此我們就完整的完成了一個從克隆到上傳遠(yuǎn)程倉庫的完整流程。
提交PR至源倉庫
1、新建PR
接下來就是將我們個人遠(yuǎn)程倉庫的修改通過pull request(PR)提交到源倉庫。
首先我們在自己克隆的遠(yuǎn)程倉庫點(diǎn)擊新建Pull Request。
然后選擇我們剛剛改動的分支,然后添加描述,進(jìn)行提交即可。
2、觸發(fā)OpenHarmony源倉庫門禁
進(jìn)入我們的PR頁面,可以看到評論區(qū)有門禁觸發(fā)提醒。
然后我們最后一步就是在評論區(qū)評論 sig start build。
當(dāng)檢測結(jié)果如下,就說明門禁通過了,最后等待官方人員手動合入即可。
到此我們就完成了從0到提交PR至OpenHarmony源倉庫的完整過程啦~
門禁檢測失敗原因
下面是部分我遇到的門禁檢測失敗原因總結(jié):
- dco檢查失敗:
- 該gitee賬號綁定的郵箱沒有簽署DCP協(xié)議,具體簽署方法上面文章以及提到。
- commit(修改記錄) 沒有進(jìn)行署名,具體署名方法上面文章以及提到。
- 代碼合規(guī)檢測失?。?/li>
- 代碼文件內(nèi)含有二進(jìn)制文件,比如pdf文件等,需要移除二進(jìn)制文件并且重新上傳。