开源之路,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 开始!的更多相关文章

  1. 留念 C语言第一课简单的计算器制作

    留念 C语言第一课简单的计算器制作 学C语言这么久了.  /* 留念 C语言第一课简单的计算器制作 */   #include<stdio.h>  #include<stdlib.h ...

  2. 创建第一个简单的AI分类器

    from sklearn import tree# 第一个简单的分类器features = [[140, 1], [130, 1], [150, 0], [170, 0]] #列表左边的变量代表水果的 ...

  3. MFC入门(一)-- 第一个简单的windows图形化界面小程序(打开计算器,记事本,查IP)

    ////////////////////////////////序//////////////////////////////// 大约三年前,学过一些简单的编程语言之后其实一直挺苦恼于所写的程序总是 ...

  4. asp.net 网站在Apache下的配置,就这么简单

    asp.net 网站在Apache下的配置,就这么简单 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames ...

  5. oracle学习 第一章 简单的查询语句 ——03

    1.1最简单的查询语句 例 1-1 SQL> select * from emp; 例 1-1 结果 这里的 * 号表示全部的列.它与在select 之后列出全部的列名是一样的.查询语句以分号( ...

  6. asp.net 站点在Apache下的配置,就这么简单

    asp.net 站点在Apache下的配置,就这么简单 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames ...

  7. 程序演示:C语言第一个简单实例

    在信息化.智能化的世界里,可能很早很早 我们就听过许多IT类的名词,C语言也在其中,我们侃侃而谈,到底C程序是什么样子?让我们先看简单的一个例子: 1 2 3 4 5 6 7 8 9 #include ...

  8. Linux:apache第一个简单的站点

    前提: apache安装目录再/application/apache/ 1.先进入安装目录中 cd /application/apache/ ls 查看目录中的内容 可以看到好多我们常见的文件夹,bi ...

  9. 成为 Apache 贡献者,So easy!

    点击上方蓝字关注 Apache DolphinScheduler Apache DolphinScheduler(incubating),简称"DS", 中文名 "海豚调 ...

随机推荐

  1. 缓存&PWA实践

    缓存&PWA 实践 一.背景 从上一篇<前端动画实现与原理分析>,我们从 Performance 进行动画的性能分析,并根据 Performance 分析来优化动画.但,前端不仅仅 ...

  2. 前端 关于请求地址时出现乱码, 出现%E2%80%8B的问题

    做项目时,添加了新的一个接口,习惯性地复制了接口下来.然后测试发现 请求时自动添加 了几个%E2%80%8B这种乱码. 问题原因: 我输出请求地址时也是正确的,是因为复制过来的接口地址会有零宽空格 解 ...

  3. Kafka消息的压缩机制

    最近在做 AWS cost saving 的事情,对于 Kafka 消息集群,计划通过压缩消息来减少消息存储所占空间,从而达到减少 cost 的目的.本文将结合源码从 Kafka 支持的消息压缩类型. ...

  4. Python数据分析--Numpy常用函数介绍(5)--Numpy中的相关性函数

    摘要:NumPy中包含大量的函数,这些函数的设计初衷是能更方便地使用,掌握解这些函数,可以提升自己的工作效率.这些函数包括数组元素的选取和多项式运算等.下面通过实例进行详细了解. 前述通过对某公司股票 ...

  5. Python双人五子棋

    这篇文章旨在介绍一个双人的五子棋程序.再次重申,本人不擅长对代码的可读性进行优化,所以可能有些杂乱(在所难免). 先瞅一眼效果图: 请注意,这个棋子--是这么圆润立体!本程序不需任何素材图片,完全用代 ...

  6. Tensor的向量化

    向量化操作是指可以在同一时间进行批量地并行计算,例如矩阵运算,以达到更好效率的一种方式. 尽量使用向量化直接对Tensor操作,避免低效率的for循环对元素逐个操作.

  7. JS:条件语句3

    1.while while 语句只要指定条件为 true,就会执行循环. 语法: while(条件){ 语句: } 例: var i = 0; while (i < 5) { console.l ...

  8. JavaScript中动态生成表格

    动态生成表格,首先需要输入并获取动态的数字,html中结构代码如下:行:<input type="text" id="row" value="5 ...

  9. gitlab备份迁移与升级

    升级计划: https://docs.gitlab.com/ee/update/index.html#upgrade-paths 1. 安装gitlab(和源版本必须保持一致) wget https: ...

  10. python基础教程:定义类创建实例

    类的定义 在Python中,类通过class关键字定义,类名以大写字母开头 >>>class Person(object): #所有的类都是从object类继承 pass #pass ...