第一次pull request
一直想要在github上作出一點貢獻(xiàn),暫時沒有提交代碼的能力。第一次pull request是幫一個外國開發(fā)者翻譯一個Telegram bot。這篇文章就是我的一些筆記。
開始工作
- 首先你應(yīng)該要注冊一個github帳號(假如叫kris,下文有用到)
- 用網(wǎng)站打開你想要貢獻(xiàn)的項目倉庫,然后你會看見有一個fork按鈕
- 在你的電腦安裝git,雖然說直接在網(wǎng)站上操作也行,不過我說的是命令行
開始pull request
當(dāng)你按了fork之后,就是相當(dāng)與復(fù)制了這個項目到你的github倉庫上,你會發(fā)現(xiàn)你的倉庫會多出一個項目。例如有一個叫star的開發(fā)者有一個叫daydaysleep的項目,你在他的主頁上看見的是star/daydaysleep。當(dāng)你fork了之后,你會發(fā)現(xiàn)你的主頁上面出現(xiàn)kris/daydaysleep,但是其實這是變成你的項目。
然后你在電腦命令行clone你的項目到電腦
$ git clone https://github.com/kris/daydaysleep.git
然后修改你的代碼,修改完畢之后
$ git add . && git commit -m "modified some file"
$ git push origin master
但其實你這么做,只是把代碼推送到你的自己的倉庫中,如果這時候你creat pull request,如果上游項目已經(jīng)作出修改,但是你push之前pull下來的只是你自己倉庫的更新,所以上游合并你的代碼的時候可能工作量會很大。
所以如果你想給上游貢獻(xiàn)代碼,你還需要更新上游的代碼到你的本地倉庫
# 添加上游倉庫
$ git remote add upstream https://github.com/star/daydaysleep.git
# 從original repo更新文件
$ git fetch upstream
# 合并上游的master分支到你當(dāng)前的分支
$ git merge upstream/master
然后每次開始工作之前都先fetch upstream 和merge,然后修改完代碼之后push到自己的倉庫
$ git add . && git commit -m "modified some file"
$ git push origin master
然后在github中打開自己的倉庫項目,點擊pull request,選擇好你的分支和想要合并到上游的哪個分支,做好code review,寫一點注釋給作者看,然后提交。
最后等到上游合并你的pull 熱去