嘗試Pull Request--第6章學習筆記

Pull Request和Pull是兩碼事。

自己的倉庫或者自己具有管理權限的倉庫,可以直接clone,pull,修改,push;別人的倉庫,必須先fork成自己的倉庫,然后再clone,pull,修改,push,最后再pull request。

6.1 Pull Request的概要

Pull Request是自己修改源代碼后,請求對方倉庫采納該修改時采取的一種行為。

6.2 發(fā)送 Pull Request前的準備

Branch

要養(yǎng)成創(chuàng)建特性分支之后再修改代碼的好習慣

在GitHub上發(fā)送Pull Request時,一般都是發(fā)送特性分支。這樣一來,Pull Request就擁有了更明確的特性(主題)。讓對方了解自己修改代碼的意圖,有助于提高代碼審查的效率。

查看clone出的倉庫的分支

開頭加了“remotes/origin/”的是GitHub端倉庫的分支。

網(wǎng)站中顯示的HTML位于/origin/gh-pages分支。雖然通常情況下最新版代碼都位于master分支,但由于本次我們使用了GitHub Pages,所以最新代碼位于gh-pages分支。

git branch -a
創(chuàng)建自己的特性分支

在clone出的倉庫中,創(chuàng)建自己的特性分支,用于提交自己修改的代碼。

git checkout -b branch-name
添加代碼

在clone出的本地倉庫中,添加自己的代碼。

提交修改

用git diff命令查看修改是否已經(jīng)正確進行。

git diff

確認修改后,提交至本地倉庫。

git add file-name
git commit -m "My commit information"
創(chuàng)建遠程分支

要從GitHub發(fā)送Pull Request,GitHub端的倉庫中必須有一個包含了修改后代碼的分支?,F(xiàn)在就來創(chuàng)建本地work分支的相應遠程分支。

git push origin branch-name

6.3 發(fā)送Pull Request

查看分支間的差別,點擊Compare按鈕查看。查看時,保證目標倉庫及其分支在左邊,自己的倉庫及其分支在右邊。這樣發(fā)送Pull Request時,才是發(fā)送給目標倉庫。

確認想要發(fā)送的Pull Request的內容差別無誤后,請點擊Create Pull Request。隨后顯示的表單用于填寫請求對方采納的評論。

確認沒有問題后,點擊Create Pull Request按鈕。這樣一來,Pull Request的目標倉庫中就會新建Pull Request和Issue,同時該倉庫的管理者會接到通知。

6.4 讓Pull Request更加有效的方法

在開發(fā)過程中發(fā)送Pull Request進行討論

在GitHub上,我們可以盡早創(chuàng)建Pull Request,從審查中獲得反饋。只要在想發(fā)起討論時發(fā)送Pull Request即可,不必等代碼最終完成。

向發(fā)送過Pull Request的分支添加提交時,該提交會自動添加至已發(fā)送的Pull Request中。

另外要注意,不要在Pull Request中添加無關的修改。處理與主題無關的作業(yè)請另外創(chuàng)建分支。

明確標出“正在開發(fā)過程中”

為了防止開發(fā)到一半的Pull Request被誤合并,一般都會在標題前加上“WIP”字樣,表示仍在開發(fā)過程中。等所有功能都實現(xiàn)之后,再消去這個前綴。

WIP = Work In Progress

不進行Fork直接從分支發(fā)送Pull Request

一般來說,在GitHub上修改對方的代碼時,需要先將倉庫Fork到本地,然后再修改代碼,發(fā)送Pull Request。

如果用戶對該倉庫有編輯權限,則可以直接創(chuàng)建分支,從分支發(fā)送Pull Request。團隊開發(fā)時不妨為每一名成員賦予編輯權限,免去Fork倉庫的麻煩。這樣,成員在有需要時就可以創(chuàng)建自己的分支,然后直接向master分支等發(fā)送Pull Request。

6.5 倉庫的維護

將倉庫更新至最新狀態(tài)

對目標倉庫(原倉庫),在GitHub上進行Fork,然后clone。

git clone git@github.com:自己的用戶名/倉庫名.git

給原倉庫設置名稱,例如upstream。

git remote add upstream git@github.com/原倉庫所有者用戶名/倉庫名.git

獲取最新數(shù)據(jù)。從遠程倉庫實際獲?。╢etch)最新源代碼,與自己倉庫的分支進行合并。

git fetch upstream

git merge upstream/master
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容