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