当前位置: 首页 > news >正文

提交PR的git 流程

前言
上次花了点时间让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数量。

相关文章:

  • OAuth快速入门
  • 树莓派的kodi设置遥控器的方法
  • C# - 委托中的协变
  • Python学习笔记 字符串拼接
  • CentOS6.4下Docker应用环境的部署配置
  • HDU5701 中位数计数【中位数】
  • Android Activity
  • Markdown 语法简单说明
  • iOS数据存储到本地的几种方法
  • linux awk(9)命令详解
  • 色情病毒“魅影杀手”的恶意行为及黑产利益链分析
  • 初学UML之-------用例图
  • Django接受ajax传过来的数组
  • 服务端构架干货:快节奏多人游戏的技术实现
  • SpringMVC -- 梗概--源码--贰--下载
  • ES6指北【2】—— 箭头函数
  • 【RocksDB】TransactionDB源码分析
  • github指令
  • HTTP中的ETag在移动客户端的应用
  • JavaScript创建对象的四种方式
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • learning koa2.x
  • leetcode386. Lexicographical Numbers
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Magento 1.x 中文订单打印乱码
  • Mithril.js 入门介绍
  • Python_OOP
  • Vue官网教程学习过程中值得记录的一些事情
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 从PHP迁移至Golang - 基础篇
  • 动态规划入门(以爬楼梯为例)
  • 分享一份非常强势的Android面试题
  • 线上 python http server profile 实践
  • 自动记录MySQL慢查询快照脚本
  • kubernetes资源对象--ingress
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ###项目技术发展史
  • #if #elif #endif
  • #Z0458. 树的中心2
  • (11)MSP430F5529 定时器B
  • (6)STL算法之转换
  • (8)STL算法之替换
  • (三) diretfbrc详解
  • (三)docker:Dockerfile构建容器运行jar包
  • (五)MySQL的备份及恢复
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)Linux下编译安装log4cxx
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .gitattributes 文件
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .Net接口调试与案例
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比