开源之路,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. Layer Normalization和Batch Normalization

    Layer Normalization 总览 针对同一通道数的图片的H*W进行层正则化,后面的γ和β是可以学习的参数,其中这两个的维度和最后一个的维度相同 例如特征图矩阵维度为[3, 577, 768 ...

  2. 【Azure 存储服务】Java Azure Storage SDK V12使用Endpoint连接Blob Service遇见 The Azure Storage endpoint url is malformed

    问题描述 使用Azure Storage Account的共享访问签名(Share Access Signature) 生成的终结点,连接时遇见  The Azure Storage endpoint ...

  3. 《Unix 网络编程》08:基本UDP套接字编程

    基本UDP套接字编程 系列文章导航:<Unix 网络编程>笔记 UDP 概述 流程图 recvfrom 和 sendto #include <sys/socket.h> ssi ...

  4. AT32F415 修改时钟和晶振方法(原创)

    1. 简介 我们几乎是国内第一批使用AT32F415芯片的客户,那个时候芯片还没涨价,岁月一切静好.使用AT32F415 做了几个小产品,也在持续出货.后来大家都知道,涨价缺货愈演愈烈.好在我们提前囤 ...

  5. jenkins 流水线自动化部署 手动下载安装插件包

    如果有些插件不能通过可选插件安装,可以进行选择高级并上传插件包,插件包链接地址为:http://updates.jenkins-ci.org/download/plugins/ 同时在高级中可以更换下 ...

  6. 3. Docker应用

  7. PowerShell 定时刷新查看文件内容

    get-content .\1.txt -ReadCount 0 -Tail 5 -Wait

  8. php公立转农历

    <?php function nongli($riqi) { //优化修改 20160807 FXL $nian=date('Y',strtotime($riqi)); $yue=date('m ...

  9. 【Java集合】ArrayDeque源码解读

    简介 双端队列是一种特殊的队列,它的两端都可以进出元素,故而得名双端队列. ArrayDeque是一种以循环数组方式实现的双端队列,它是非线程安全的. 它既可以作为队列也可以作为栈. 继承体系 Arr ...

  10. C语言学习之我见-strcmp()字符串比较函数

    strcmp()函数,用于两个字符串的比较. (1)函数原型 int strcmp(const char *_Str1,const char *_Str2); (2)头文件 string.h (3)功 ...