前言
上次花了点时间让CarbonData集成到StreamingPro中,方便大家更快速的体验到CarbonData的好处,集成完毕后就写了篇文章:让CarbonData使用更简单 文章里面有下载链接,下载下来就能用,基本不需要你了解carbondata的知识就可以直接用。
然后集成过程中解决了不少问题,提交了个PR,因为社区你懂的,一般接受PR的速度都比较慢,尤其是一个快速发展的项目,master更新频率很快,而社区又对git log commit 之类的有一定的要求,而我之前参与的项目,要么自己是开发者,要么是对应项目的member,commit 有点随意,这次比较严格,有些流程就搞的比较混乱。所以在朋友的指导下好好学了下git的逻辑,现在分享下。如果有错误或者大家有指教请一定要联系我 😀
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数量。