成为 Apache 贡献者,从提交第一个简单 PR 开始!
开源之路,PR 走起 !
---全球最大同性交友社区
1
fork
以下实例以 incubator-dolphinscheduler 海豚调度为例进行操作
从远端仓库* https://github.com/apache/incubator-dolphinscheduler.git * fork 一份代码到自己的仓库中
注:国内用户也可以从 Gitee fork 到自己的仓库中,速度会更快一些: https://gitee.com/dolphinscheduler/DolphinScheduler.git
2
clone
把自己仓库clone到本地
λ git clone https://github.com/xx/incubator-dolphinscheduler.git
Cloning into 'incubator-dolphinscheduler'...
remote: Enumerating objects: 304, done.
remote: Counting objects: 100% (304/304), done.
remote: Compressing objects: 100% (200/200), done.
Receiving objects: 100% (54821/54821), 152 (delta 38), pack-reused 54517 eceiving objects: 100% (54821/54821), 77.07 MiB | 918.00 KiB/s
77.08 MiB | 463.00 KiB/s, done.
Resolving deltas: 100% (23530/23530), done.
Updating files: 100% (1557/1557), done.
3
remote
添加远端仓库地址,命名为upstream
git remote add upstream https://github.com/apache/incubator-dolphinscheduler.git
查看仓库
λ git remote -v
origin https://github.com/xx/incubator-dolphinscheduler.git (fetch)
origin https://github.com/xx/incubator-dolphinscheduler.git (push)
upstream https://github.com/apache/incubator-dolphinscheduler.git (fetch)
upstream https://github.com/apache/incubator-dolphinscheduler.git (push)
此时会有两个仓库:origin(自己的仓库)和upstream(远端仓库)
4
branch
查看分支
λ git branch -v
dev d70d8a60 [Feature-3222][datasource] Store password in ciphertext instead (#3330)
创建分支
λ git checkout -b dev-local
Switched to a new branch 'dev-local'
dev-local 用于本地测试、开发
在提交PR之前,需要创建一个分支专门用作此次PR代码分支,等待合并到原远端仓库后,可删除分支。
git checkout dev
dev-imp-server-ProcessUtils-temp 用于解决代码冲突
dev-imp-server-ProcessUtils 用于提交PR 的代码分支
D:\developer\git-repository\incubator-dolphinscheduler (dev-imp-server-ProcessUtils)
λ git add .
D:\developer\git-repository\incubator-dolphinscheduler (dev-imp-server-ProcessUtils)
λ git commit -m "server model ProcessUtils.java code cleaning." .
[dev-imp-server-ProcessUtils 69ba65db] server model ProcessUtils.java code cleaning.
1 file changed, 6 insertions(+), 16 deletions(-)
D:\developer\git-repository\incubator-dolphinscheduler (dev-imp-server-ProcessUtils)
λ git push origin dev-imp-server-ProcessUtils
5
pull request
登录github.com 在自己仓库下,如果有更改的分支,系统会有提示栏,也可以通过点击 Pull request栏new pull request.
需要填写对本次RR的一个描述,目的,变更日志等。在网页下面也可以看见本次PR提交的代码变更。本次实例只是做了一些代码清理,清理不在引用的变量和清理不需要上抛的异常类型。
提交之后,接着社区Committer们会做CodeReview,然后他会与您讨论一些细节(包括设计,实现,性能等)。当团队中所有人员对本次修改满意后,会将提交合并到dev分支。
6
同步
如何保持和原远端仓库同步???
获取/更新远端仓库代码
git fetch upstream
From https://github.com/apache/incubator-dolphinscheduler
* [new branch] 1.2.0-release -> upstream/1.2.0-release
* [new branch] 1.2.1-release -> upstream/1.2.1-release
* [new branch] 1.3.1-release -> upstream/1.3.1-release
* [new branch] 1.3.2-release -> upstream/1.3.2-release
* [new branch] alert_plugin_design -> upstream/alert_plugin_design
* [new branch] bcai-upgrade-java-version-for-sonarcloud -> upstream/bcai-upgrade-java-version-for-sonarcloud
* [new branch] dev -> upstream/dev
* [new branch] dev-1.3.0 -> upstream/dev-1.3.0
* [new branch] master -> upstream/master
* [new branch] proposal -> upstream/proposal
切换到dev分支
git checkout dev
同步远端仓库dev分支代码到本地仓库dev分支
git merge upstream/dev
提交到自己仓库
git push origin dev
7
贡献第一个 PR
参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括文档、翻译、布道、答疑、测试、以及代码等,此外也极其欢迎各种实践文章,文章内容包含不限于:DS 部署,使用,经验分享,故障处理,源码分析等。DolphinScheduler开源社区非常期待您的参与。
DolphinScheduler 社区参与贡献的方式,包括:
贡献第一个PR(文档、代码) 我们也希望是简单的,第一个 PR 的主要作用是熟悉社区协作流程及感受社区友好度,这个 PR 可以是为文档补充 1、2句话,给代码添加 1、2 行注释等等都行,你说简单不简单?
如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/docs/development/contribute.html
文档 github 地址:https://github.com/apache/incubator-dolphinscheduler-website
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的
小彩蛋
贡献完 一个 PR 后,将邀请加入 DolphinScheduler 的开发者群,享有生产环境若遇到问题优先处理的福利吆
如果以上文章看不大懂,也不要紧,DolphinScheduler有开发者种子群,会培养如何提交自己的第一个 PR ,只要你是想为开源做贡献,欢迎联系

1、DolphinScheduler 社区是非常 open 的,有啥问题都可以随时直接开聊哈/::D
2、参与代码贡献的话,大家可以先尝试在自己本地搭建一下开发环境哈,https://dolphinscheduler.apache.org/zh-cn/docs/development/development-environment-setup.html 按照这个文章,遇到问题欢迎群里直接聊下,必要的话远程看看啥情况
3、当然参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括文档、翻译、布道、答疑、测试、以及代码等,此外也极其欢迎各种实践文章,文章内容包含不限于:DS 部署,使用,经验分享,故障处理,源码分析等等。有意参与非代码贡献的伙伴欢迎群里聊起
4、贡献第一个 PR (文档/文章、代码) 我们也希望是简单的,第一个 PR 的主要作用是熟悉社区协作流程及感受社区友好度,这个 PR 可以是为文档补充 1、2句话,给代码添加 1、2 行注释等等都行
成为 Apache 贡献者,从提交第一个简单 PR 开始!的更多相关文章
- 留念 C语言第一课简单的计算器制作
留念 C语言第一课简单的计算器制作 学C语言这么久了. /* 留念 C语言第一课简单的计算器制作 */ #include<stdio.h> #include<stdlib.h ...
- 创建第一个简单的AI分类器
from sklearn import tree# 第一个简单的分类器features = [[140, 1], [130, 1], [150, 0], [170, 0]] #列表左边的变量代表水果的 ...
- MFC入门(一)-- 第一个简单的windows图形化界面小程序(打开计算器,记事本,查IP)
////////////////////////////////序//////////////////////////////// 大约三年前,学过一些简单的编程语言之后其实一直挺苦恼于所写的程序总是 ...
- asp.net 网站在Apache下的配置,就这么简单
asp.net 网站在Apache下的配置,就这么简单 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames ...
- oracle学习 第一章 简单的查询语句 ——03
1.1最简单的查询语句 例 1-1 SQL> select * from emp; 例 1-1 结果 这里的 * 号表示全部的列.它与在select 之后列出全部的列名是一样的.查询语句以分号( ...
- asp.net 站点在Apache下的配置,就这么简单
asp.net 站点在Apache下的配置,就这么简单 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames ...
- 程序演示:C语言第一个简单实例
在信息化.智能化的世界里,可能很早很早 我们就听过许多IT类的名词,C语言也在其中,我们侃侃而谈,到底C程序是什么样子?让我们先看简单的一个例子: 1 2 3 4 5 6 7 8 9 #include ...
- Linux:apache第一个简单的站点
前提: apache安装目录再/application/apache/ 1.先进入安装目录中 cd /application/apache/ ls 查看目录中的内容 可以看到好多我们常见的文件夹,bi ...
- 成为 Apache 贡献者,So easy!
点击上方蓝字关注 Apache DolphinScheduler Apache DolphinScheduler(incubating),简称"DS", 中文名 "海豚调 ...
随机推荐
- 跨域问题及其解决方法(JSONP&CORS)
一.什么是跨域 当a.qq.com域名下的页⾯或脚本试图去请求b.qq.com域名下的资源时,就是典型的跨域行为.跨域的定义从受限范围可以分为两种,⼴义跨域和狭义跨域. (一)广义跨域 ⼴义跨域通常包 ...
- 安装Nmap到CentOS(YUM)
Nmap是Linux下的网络扫描工具,我们可以扫描远端主机上那些端口在开放状态. 运行环境 系统版本:CentOS Linux release 7.3.1611 (Core) 软件版本:无 硬件要求: ...
- 安装Samba到CentOS(YUM)
运行环境 系统版本:CentOS Linux release 7.3.1611 软件版本:Samba-4.6.2 硬件要求:无 安装过程 1.基础网络配置 配置一个静态IP,关闭防火墙.SeLinux ...
- 8条github使用小技巧
1 简介 作为全球最大的开源及私有软件项目托管社区平台,github可以显著地帮助从事编程相关工作的人员提升自己的技术水平,也是费老师我日常最常浏览学习的技术类网站. github为了使得其使用更加便 ...
- VUE3 之 render 函数的使用 - 这个系列的教程通俗易懂,适合新手
1. 概述 老话说的好:不用想的太多.太远,做好当天的事,知道明天要做什么就可以了. 言归正传,今天我们来聊聊 VUE 中 render 函数的使用. 2. render 函数 2.1 一个简单的例子 ...
- SpringCloud 简介
目录 什么是微服务? 初识 SpringCloud SpringCloud VS Dubbo 什么是微服务? <互联网系统架构演变> "微服务"一词源于 Martin ...
- 关闭StackExchange等平台的privacy收集窗口
技术背景 当我们打开一个StackExchange页面的时候,经常会出现一个很大的privacy收集窗口,而且不管怎么点都关闭不了,比如像下图这样: 如果屏幕足够大,影响可能也不是很大,但是关键是对于 ...
- Number.prototype.toString()方法
Number.prototype.toString(radix)方法返回指定基数对应Number的字符串值 radix可选参数,值范围为2~36,转化基数,如果未指定,默认值为10,如果radix值不 ...
- 技术分享 | app测试中常用的Android模拟器
原文链接 Emulator Emualor 是 Android Studio 自带的模拟器,是官方提供的工具,Android 开发最常使用的就是这一款. 它功能非常齐全,电话本.通话等功能都可正常使用 ...
- Python调用Outlook发邮件
调用Outlook发送邮件 需安装pypiwin32模块:pip install pypiwin32 1. 发送普通邮件 import win32com.client as win32 outlook ...