纪念下我对开源社区的首个贡献--一个flink中文文档翻译相关的commit

前言

作为一名十四年整体IT经验,且包含六年大数据开发/运维/架构设计/方案咨询经验的IT老兵,明哥有些惭愧,这些年来对于开源社区,一直都是拿来主义,虽然为了适应业务需求有时会基于开源版本进行二次定制开发,但从来没有回馈过社区。

近两三年来,尤其是从2019年初阿里收购了flink背后的商业公司Data Artisan后且成立了商业公司Ververica后,flink在国内发展的如火如荼,已经成为国内流处理领域事实上的首选框架,使用该技术的公司也逐渐从互联网行业渗透到其它传统行业。同时 Apache Flink 中文社区通过各种 summit 和 meetup,以行业实践案例,博客分享,专业教程等不同形式,也在不断布道推动flink的发展和应用,在flink官网上更是专门推出了中文版,来适应英文不太好的小伙伴。

在这样的大背景下,明哥公司的流处理框架选型默认也切换为了flink。同时,本着拥抱开源回馈开源的精神,明哥觉得有必要回馈开源社区做出自己的一份贡献了。对明哥来说,一个很好的切入点,就是给flink社区贡献文档和中文翻译,因为这刚好可以用上明哥良好的英文功底(明哥毕竟是当年高考英语成绩131.5,工作后在外企HP/IBM工作了十年,与美国人加拿大人巴西人新加坡人甚至印度人各种会议历练过来的。哈哈,扯远了。)

如何开始准备工作

其实为方便对社区不熟悉的贡献者快速上手,flink中文社区做了很多工作,比如在官网首页特地详细讲述了如何贡献,也特地开辟了中文版页面:

在官方wiki中也专门有个页面,讲述如何参与中文翻译相关贡献:

在知乎专栏上也有篇文章,详细描述了“如何从 0 到 1 参与 Flink 社区”:

贡献首个commit的经验教训

完成首个commit的贡献后,明哥确实有几个经验教训跟小伙伴们分享下。

第一个经验:主动沟通,遇到问题积极寻求帮助。大家可以看到,我这个jira因为长时间没有更新处于了“ stale-assigned”状态,这其实是因为明哥对社区pr流程不太熟悉,虽然很早就完成了相关的翻译工作,Pull-request也早就available了,但没有主动联系社区相关人员进行review,而没有review过的代码,哪怕只是文档或中文翻译相关的修改,社区都不会merge到master主分支的。所以在社区进行合作时,我们要主动沟通,遇到问题积极寻求帮助。

第二个经验,需要熟悉git相关流程和命令,以及社区在这块的规范。比如在自己私有仓库的分支中修改完代码后,需要基于master分支的最新代码进行rebase(而不是merge!!),比如commit时要归并为一个commit且comment要符合社区规范。

在此着重感谢下Jark Wu Jark 老师,和Jingsong Lee 之信老师,正是在你们的帮助下,我才成功完成了首个commit, 谢谢!

git相关干货

最后来点git相关干货,供大家参考。其实git官网有更详细的资料,网上也有不少不错的博客,大家可以查阅。我这里仅仅列出一些自己本次commit中需要注意的命令和一些小技巧汇总给大家。


git push远程分支前,需要先 rebase到最新的apache master分支:

git checkout master
git pull apache master
git log --oneline -5
git checkout FLINK-18199
git rebase master
git log --oneline -5
或者:
git checkout FLINK-18199
git status
git log --oneline -5
git pull --rebase apache master
git log --oneline -5

git push 到远程仓库之后,如果需要回滚(撤销)代码改动,操作步骤如下:

1. git log 查看提交日志;然后 git reset --hard 版本号 回滚到特定提交;
2. git pull apache master: 拉取社区最新版本;
3. git log 查看提交日志;然后 git cherry-pick commitID : chrry-pick特定的提交;
4. git push origin master --force: 提交到远程仓库;
5. create pull request;

相关命令说明:

git reset –soft 不会改变工作区和stage区,仅仅将commit回退到了指定的提交 ;
git reset –mixed 不回改变工作区,但是会用指定的commit覆盖stage 区,之前所有暂存的内容都变为为暂存的状态 ;
git reset –hard 使用指定的commit的内容覆盖stage区和工作区;
git reset --soft HEAD^1;
git revert 是撤销某次操作,而不是恢复到某个版本; 
git revert 最新版本号 次新版本号... 要回滚的版本号(为避免冲突,只能一步一步回滚到你想要的版本号);
git commit --amend: 提交本次修改,和上一次的提交合并为一个提交,并修改comment;

欢迎大家拥抱开源,使用开源,回馈开源!祝大家五一节日快乐!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明哥的IT随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值