github pull request那些事
什么是Pull Request?
網上有人用老師批改卷子這件事來解釋什么是Pull Request,覺得挺形象的,變拿來用了:
你做了卷子(好比你創建了一個github倉庫),老師收取你的卷子(好比fork了你的github),然后老師會找出你卷子中的錯誤,并批改,然后將卷子返還給你(這就是Pull Request),你可以再check批改的地方,以確認是否需要接收老師的糾錯(一般老師都是對的)。
上面其實就一次github pull Request的完整流程。回到github,我們演示一個pull request的完整流程:
先點擊下圖右上角的“Fork”,來fork你關心的倉庫(我們下面把它稱作父倉庫:https://github.com/SecureSmartContract/SecurityLearningForSmartContract)
注:當你是這個倉庫的Owner時,該"Fork"按鈕是虛的,也就是你不能自己Fork自己。
Fork成功后,就會在你的賬戶下,有個同名的倉庫(我們下面把它稱作子倉庫)
這個子倉庫完全屬于你,你可以使用任何git命令對它進行更新與提交。
-
下面我們修改該倉庫的README
-
提交更新到Github子倉庫
-
點擊“Pull Request” Tab鍵
-
點擊綠色的“New pull request”
可以看到子倉庫與父倉庫之間的差別
-
點擊綠色“Create pull request”
-
選擇好創建Pull Request的模式,點擊右下角“Create pull request”按鈕
注:如果與父倉庫的更新則會出底部的提示,如果有沖突則會出現“有沖突的提示”。所以,為了避免沖突(解決沖突往往會帶來更多的溝通成本),子倉庫在提交更新之前,如果能與父倉庫同步最好。
回到父倉庫,我們就可以看到新增了一條pull request請求
父倉庫的owner可選擇對該pull request merge的方式,并將該請求的更新提交到父倉庫
然后回到父倉庫的代碼,可以看到其README更新成與子倉庫一樣了
fork產生的子倉庫如何keep up with父倉庫?
可以講,Pull Request是把fork產生的子倉庫的更新,提交到父倉庫中去。那反過來,父倉庫中其他開發者,或forker更新的內容,如何同步到子倉庫中?
這個一般的操作是通過git命令,來達到子倉庫與父倉庫同步的效果。具體步驟如下:
注:上面的步驟主要是從原理上來講的,沒有具體操作驗證。如果大家有困難,可以在下面留言。如果需求很多,我們可以另開一個博客,專門來細講這個Topic。
如何查看forker?
一個倉庫創建后,一般希望有更多的人fork(讓更多的老師幫忙改錯,以便提高成績),有更多的Star(表示有更多人關注)。查看一個倉庫,被哪些人同仁fork,與forker互動,往往是有效提高倉庫質量,獲得更多關注的有效途徑。下面我們看看在Github中,如何來查看這些友好的forker。
1.登錄到自己的倉庫
2.點擊頂部“Insights” Tab
3.再點擊左邊導航欄的“Forks”,就可以查看到你關心的forker了
總結
以上是生活随笔為你收集整理的github pull request那些事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 彻底解决SysFader:iexplor
- 下一篇: SysFader. IEXPLORE.E