前言
近來發現閱讀開源項目上手就整最新的代碼不合適,缺少項目迭代的具體實現過程,想着若是可以看到針對問題的提交代碼就好了,所以就有了本篇博客。
以文主要涉及:如何fork開源項目,如何保證本地倉庫代碼更新到最新版本。
本文以開源項目Flink為例進行說明。
1、整體流程
fork項目 =====> 下載本地 ======> 導入IDEA , 配置git獲取代碼提交過程 =====>更新代碼
2、fork項目
為了fork GitHub上的開源項目,首先需要一個GitHub的賬號,注冊過程可以百度,這里不詳細展開。
在GitHub上找到所需的開源項目,點擊右上角的fork,會自動地在自己的GitHub上創建一個repository,具體如下:
3、下載代碼
為了獲取contributer的提交過程,這里使用建議使用git在自己的倉庫里獲取源碼。
直接在git clone 原項目的URL也是可以,但是若是你想貢獻代碼到原項目了?直接提代碼到原開源項目上去提肯定不行的(當然也不是一定不行,僅說一般情況)。提交代碼到原項目上的流程一般是:提交代碼到個人的GitHub倉庫,然后new pull request到原項目倉庫,到時候原項目的作者就會根據情況是否合並你的代碼。
獲取URL的過程如下圖:
小技巧:若是你直接從GitHub上下載源碼速度慢,恰巧你是用的筆記本,你可以使用熱點下載,速度驚人,就是不知道是為什么。
4、導入IDEA,配置git獲取提交過程
因為Flink是maven項目,所以導入過程只需要在IDEA中選擇“導入已存在項目”,選中pom.xml文件即可。
該過程涉及以下幾點:
1)Java版本的選擇
正規的開源項目都會說明所適合的JDK版本,一般在GitHub項目下面的README.md文件或項目的wiki上;
所需的scala版本、maven同理;
2)配置git
配置過程可百度。
效果圖如下:
5、更新代碼
以便了解項目的進展,可以采取如下步驟更新本地代碼:
1)配置原項目地址
git remote add upstream <原倉庫github地址> //如:https://github.com/apache/flink.git
2)查看當前倉庫的遠程倉庫地址和原倉庫地址
git remote -v
3)獲取原倉庫的更新
git fetch upstream
4)合並到本地分支
git merge upstream/master
5)查看本地更新
git log
6)更新自己fork 的GitHub倉庫
git push origin master
本地代碼更新的還可以先更新GitHub上的倉庫,然后在使用git pull更新本地倉庫,但是這種方法我在使用過程遇到了無法獲取最新的版本分支的情況,具體過程可以參考Ref[1]。
個人建議使用本文提及的以git命令方式更新。
此外,在使用git從GitHub上拉代碼的過程,可能遇到RPC failed問題,可以參考Ref[2]。
6、異常處理
1) unable to access 'https://github.com/apache/flink.git/': OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
解決辦法:git config --global http.sslVerify "false"
Ref:
[1] https://www.cnblogs.com/eyunhua/p/8463200.html
[2]https://www.cnblogs.com/zjfjava/p/10392150.html