提交PR的git 流程
前言上次花了點時間讓CarbonData集成到StreamingPro中,方便大家更快速的體驗到CarbonData的好處,集成完畢後就寫了篇文章:讓CarbonData使用更簡單 文章裏麵有下載鏈接,下載下來就能用,基本不需要你了解carbondata的知識就可以直接用。
然後集成過程中解決了不少問題,提交了個PR,因為社區你懂的,一般接受PR的速度都比較慢,尤其是一個快速發展的項目,master更新頻率很快,而社區又對git log commit 之類的有一定的要求,而我之前參與的項目,要麼自己是開發者,要麼是對應項目的member,commit 有點隨意,這次比較嚴格,有些流程就搞的比較混亂。所以在朋友的指導下好好學了下git的邏輯,現在分享下。如果有錯誤或者大家有指教請一定要聯係我
fork
首先在github 上fork incubator-carbondata
克隆到本地
git clone git@github.com:allwefantasy/incubator-carbondata.git
添加原來的源
git remote add url https://github.com/apache/incubator-carbondata.git
這個時候git remote 後的樣子如下:
origin git@github.com:allwefantasy/incubator-carbondata.git (fetch)
origin git@github.com:allwefantasy/incubator-carbondata.git (push)
url https://github.com/apache/incubator-carbondata.git (fetch)
url https://github.com/apache/incubator-carbondata.git (push)
開新分支
git branch spark-streaming-dataframe-support2
git checkout spark-streaming-dataframe-support2
在新分支進行更改
無論是第二天準備開始添加代碼還是說要提價PR前,都需要將master的新的commit也在自己的分支上重新打一遍,而且如果遇到衝突也需要解決。具體方式如下:
首先拉master分支的最新內容,然後再切換回來
git checkout master
git pull url master
git checkout spark-streaming-dataframe-support2
接著講master的commit 都遷移到我們現在所處的分支上:git rebase -i url/master
這個過程可能會有衝突,你可以通過git status查看衝突的文件,解決後用git add 添加,之後繼續通過git rebase --continue
來完成中斷的rebase操作。最後將branch 在push到origin上去:
git push -f origin spark-streaming-dataframe-support2
這個流程無論是你新建或者更新PR都是適用的。如果是新增可以跑到 https://github.com/allwefantasy/incubator-carbondata 上,選擇頁麵的New pull request 按鈕。 如果是更新,直接打開PR的頁麵,它會實時更新。
如果你提交的commit 太多,這個時候可以把他們合並成一個commit,具體做法如下,找到最新的那個commit 的id
git rebase -i [your-id]
之後就會出現很多 pick 開頭的行,將第一行後麵的pick 都改成squash,保存退出,就會將squash 開頭的commit 都合並到第一個commit上了,這樣可以減少你的commit數量。最後更新:2017-04-01 17:13:51