如何飞速成为开源贡献者(Contributor)

如何飞速成为开源贡献者Contributor

  • 一、环境信息
    • 1.1 硬件信息
    • 1.2 软件信息
  • 二、Git安装
    • 2.1 Git介绍
    • 2.2 Git下载安装
  • 三、开源项目选定
  • 四、GitHub参与开源流程
    • 4.1 Fork项目
    • 4.2 SSH配置
      • 4.2.1 为什么要配置SSH
      • 4.2.2 如何配置SSH
    • 4.3 Clone项目
    • 4.4 IDEA关联
    • 4.5 PR生成
    • 4.6 PR提交

一、环境信息

1.1 硬件信息

  1. 型号 :MacBook Pro
  2. 内存 :16GB
  3. 硬盘 :512GB SSD
  4. 处理器 :Apple M2
  5. 宿主机CPU架构 :ARM

1.2 软件信息

  1. Git版本 :2.39.2 (Apple Git-143)
  2. Maven版本 :3.8.8
  3. JDK版本 :17

二、Git安装

2.1 Git介绍

Git 是一个分布式版本控制系统,用于管理和跟踪文件的变化。它可以帮助开发人员或团队追踪代码的修改历史、协同开发、管理各个版本的代码,并提供了回滚、分支管理、合并等功能。
使用 Git,开发人员可以在不同的分支上独立工作,然后将各自的修改合并到主分支上,以便保持代码的整洁和可维护性。Git 是开源的,易于安装和使用,因此被广泛应用于软件开发和其他版本控制的场景中。
在这里插入图片描述

2.2 Git下载安装

直接参考 git 官方网站:https://git-scm.com/

在这里插入图片描述

三、开源项目选定

乙真仙人选定的是Apache Doris

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。
基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。
在这里插入图片描述

四、GitHub参与开源流程

4.1 Fork项目

在GitHub中,“fork” 指的是将别人的代码库复制到自己的账户下,并在独立的分支上进行修改和扩展的行为。
当你在GitHub上找到一个你感兴趣的项目,并希望对其做出改进、贡献或者使用它作为自己项目的基础时,你可以选择将该项目进行fork。这将在你的GitHub账户下创建一个原项目的副本,包含了所有的代码、历史记录和分支。
在你进行分叉后,你便可以在自己的项目副本上自由地进行修改和实验,而不会影响原项目的稳定性和功能。你可以添加新的特性、修复问题、优化代码,或者根据自己的需求进行个性化定制。
fork之后,你可以将你的修改提交回原项目,这就是所谓的"pull request"(合并请求)。原项目的维护者将会审核你的更改,并决定是否接受你的修改并将其合并到原项目中。
通过这种方式,fork功能为开源社区提供了一种协作的方式,使得项目能够从众多贡献者的力量中受益。

1.点击fork
在这里插入图片描述2.创建fork
在这里插入图片描述
3.查看fork
在这里插入图片描述

4.2 SSH配置

4.2.1 为什么要配置SSH

git clone支持https和git(即ssh)两种方式下载源码:
在这里插入图片描述
当使用git方式下载时,如果没有配置过ssh key,则会报如下错误提示:
在这里插入图片描述

4.2.2 如何配置SSH

1.首先用如下命令(如未特别说明,所有命令均默认在Git Bash工具下执行)检查一下用户名和邮箱是否配置(github支持我们用用户名或邮箱登录):

git config --global  --list # 如下图所示,说明还没配置

在这里插入图片描述

2.配置用户名和邮箱(如已配置则跳过)

# 可以在自己github的Settings中找到
git config --global  user.name "这里换上你的用户名"
git config --global user.email "这里换上你的邮箱"

3.再次检查用户名和邮箱(如已检查成功则跳过)

git config --global  --list # 如下图所示,说明配置成功

在这里插入图片描述

4.生成秘钥

# 执行命令后需要进行3次或4次确认(可以一路回车)
ssh-keygen -t rsa -C "这里换上你的邮箱"# 结果如下图所示,记住红框内id_rsa.pub文件路径,后续需要配置到github上

在这里插入图片描述

5.打开你的github,进入Settings配置页
在这里插入图片描述

6.选择SSH and GPG keys项并新增
在这里插入图片描述
7.将id_rsa.pub的内容填入Key中并Add

至此ssh就配置完成了
在这里插入图片描述

4.3 Clone项目

SSH配置完成后,再次进行Clone就可以正常下载了

git clone git@github.com:yz-jayhua/doris.git

在这里插入图片描述

4.4 IDEA关联

1.打开clone的项目
在这里插入图片描述

2.打开Settings并搜索git
在这里插入图片描述

3.点击测试让idea自动匹配并应用
在这里插入图片描述

4.5 PR生成

来个简单的文档PR体验一把:修改一个文档的错别字

1.定位修改文件

查阅官方文档时发现如下一个错别字,对应官方文档的地址:DATETIME

在这里插入图片描述

2.从master新建一个分支去修改
在这里插入图片描述

3.分支命名并创建
在这里插入图片描述

4.创建后自动切换分支
在这里插入图片描述

5.提交代码到本地仓库

Commit Message参考:
fix:表示该提交用于修复错误或问题。
feat:表示该提交用于添加新功能。
docs:表示该提交用于更新文档。
style:表示该提交用于代码格式化或结构调整。
refactor:表示该提交用于代码重构,不添加新功能或修复错误。
perf:表示该提交用于提高性能。
test:表示该提交用于测试代码。

在这里插入图片描述

6.推送代码至github仓库上
在这里插入图片描述

7.PR生成确认

此时刷新github个人仓库对应的项目时,会出现PR请求,即说明PR生成成功

在这里插入图片描述

4.6 PR提交

1.点击【Compare & pull request】并创建PR
在这里插入图片描述

2.提交结果确认

提交后会生成相关的pr编号,后续流程如下:

  1. 会有社区小伙伴进行review(Apache Doris目前需要2位小伙伴review后才可进行下一步,不同的项目要求不同)
  2. review完成并确认后会开始跑流水线,即自动对项目进行各种规则检测
  3. 流水线全部跑完后,会有社区的负责人进行合并Merge
  4. 合并成功后,恭喜你成为Apache Doris贡献者(Contributor)

在这里插入图片描述
在这里插入图片描述

至此,你已飞速成为开源贡献者(Contributor)啦~查阅过程中若遇到问题欢迎留言或私信交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/64733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Navicat16安装教程

注:因版权原因,本文已去除破解相关的文件和内容 1、在本站下载解压后即可获得Navicat16安装包和破解补丁,如图所示 2、双击“navicat160_premium_cs_x64.exe”程序,即可进入安装界面, 3、点击下一步 4、如图所示勾选“…

Java 中数据结构HashMap的用法

Java HashMap HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。 HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。 HashMap 是…

防雷接地+防雷检测综合应用解决方案

防雷接地和防雷检测是防雷工程中的重要内容,它们旨在保护建筑物和设备免受雷电的危害。地凯科技将介绍防雷接地和防雷检测的基本原理、施工案例方案和国标措施。 防雷接地是指将建筑物的金属结构、防雷装置和电气设备与地面连接,形成一个接地系统&#…

一些指针的练习题

一、指针练习 1.1 声明一个整型变量和一个指向整型的指针变量&#xff0c;将指针指向该整型变量&#xff0c;然后通过指针修改变量的值。 #include <stdio.h> int main() {int a 0; int* p &a;// *p 20; // 修改指针变量的值 // printf("a 1 %d", …

安装Ubuntu系统,将U盘当作启动盘后写保护怎么回复?

下载ChipGenius 插入写保护的U盘&#xff0c;打开ChipGenius.exe后可以扫描到U盘&#xff0c;如下图中的E:盘就是我插入的U盘&#xff08;我的PC上只有C、D两个分区&#xff09;&#xff1b; ChipGenius的作用 下载ChipGenius是为了获取U盘的设备信息&#xff1a;重点是主控…

数据集学习笔记(七):不同任务数据集的标签介绍(包含目标检测、图像分割、行为分析)

文章目录 一、目标检测1.1 TXT1.2 COCO1.3 XML 二、图像分割2.1 json2.1 TXT2.1.1 json转txt 三、行为分析3.1 TXT3.2 JSON 一、目标检测 1.1 TXT 每行表示&#xff08;类别&#xff0c;中心x相对坐标&#xff0c;中心y相对坐标&#xff0c;相对宽度、相对高度&#xff09; 1…

LeetCode494. 目标和

494. 目标和 文章目录 [494. 目标和](https://leetcode.cn/problems/target-sum/)一、题目二、题解方法一&#xff1a;目标和路径计数算法方法二&#xff1a;01背包方法三&#xff1a;01背包一维数组 一、题目 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个…

语言基础篇7——Python运算符

运算符 算数运算符 # 算术运算符 # # - # * # ** # / 浮点除 # // 整数除 # %赋值运算符 # 赋值运算符 # # # - # / 浮点除等 # // 整数除等 # * # **关系运算符 # 关系运算符 # > # # < # > # < # ! # is # is not逻辑运算符 # 逻辑运算符 # 返回表达式…

Golang网络编程

Golang网络编程 网络编程简介网络编程协议网络分层模型TCP/IP协议什么是DNS套接字&#xff08;Socket&#xff09;客户端服务器模型TCP/UDP的区别HTTP协议会话sessionCookiehttpsHTTP请求格式HTTP响应格式http头信息http请求头信息http响应头信息HTTP状态码http内容类型和内容…

面试官:说一下 MyBatis 的一级缓存和二级缓存 ?

目录 1. MyBatis 的缓存机制 2. 为什么不默认开启 MyBatis 的二级缓存 3. MyBatis 如何开启二级缓存 4. MyBatis 有哪些缓存清除策略 1. MyBatis 的缓存机制 MyBayis 中包含两级缓存&#xff1a;一级缓存和二级缓存 1. 一级缓存是 SqlSession 级别的&#xff0c;是 MyBati…

【从零单排Golang】第十五话:用sync.Once实现懒加载的用法和坑点

在使用Golang做后端开发的工程中&#xff0c;我们通常需要声明一些一些配置类或服务单例等在业务逻辑层面较为底层的实例。为了节省内存或是冷启动开销&#xff0c;我们通常采用lazy-load懒加载的方式去初始化这些实例。初始化单例这个行为是一个非常经典的并发处理的案例&…

需求文档规模 (pages/KLOC)需求缺陷密度 (个/KLOC)

质量目标规范 KLOC(千行代码)是一个计算机程序有多大或者需要多少人来完成其编码工作的一个传统的度量标准。这些代码通常是源代码。高级源语言(比如C)编译成的机器代码行数要比低级语言(比如汇编语言)编译成的机器代码要多&#xff0c;这样&#xff0c;一千行C代码将会比一千…

jmeter 常数吞吐量定时器

模拟固定吞吐量的定时器。它可以控制测试计划中各个请求之间的时间间隔&#xff0c;以达到预期的吞吐量。 参数包括&#xff1a; Target Throughput&#xff1a;目标吞吐量&#xff08;每分钟请求数&#xff09;Calculate Throughput based on&#xff1a;吞吐量计算基准&…

线程调度的原理、线程执行过程、线程栈模型

线程调度的原理 线程调度是操作系统或执行环境管理多个线程并分配CPU时间片给它们的过程。线程调度的原理取决于操作系统和执行环境的实现,但基本原理通常包括以下关键概念: 时间片轮转:在多任务系统中,CPU的时间被分为若干时间片(时间量子)。每个线程被分配一个时间片,…

stm32---用外部中断实现红外接收器

一、红外遥控的原理 红外遥控是一种无线、非接触控制技术&#xff0c;具有抗干扰能力强&#xff0c;信息传 输可靠&#xff0c;功耗低&#xff0c;成本低&#xff0c;易实现等显著优点&#xff0c;被诸多电子设备特别是 家用电器广泛采用&#xff0c;并越来越多的应用到计算机系…

2022年09月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;stack or queue 栈和队列都是常用的线性结构&#xff0c;它们都提供两个操作&#xff1a; Push&#xff1a;加入一个元素。 Pop&#xff1a;弹出一个元素。 不同的是&#xff0c;栈是”先进后出”&…

leetcode236. 二叉树的最近公共祖先(java)

二叉树的最近公共祖先 题目描述递归法代码演示 上期经典 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q …

python中list的两个无返回值函数

list是python中一个比较常用的数据结构&#xff0c;相当于其它语言的数据&#xff0c;list有很多方法&#xff0c;但是有的方法有返回值&#xff0c;有的没有返回值&#xff0c;因为多数情况下我调用函数的时候&#xff0c;习惯的认为函数会有返回值&#xff0c;但是如果突然出…

Ae 效果:CC Light Rays

生成/CC Light Rays Generate/CC Light Rays CC Light Rays&#xff08;CC 光线&#xff09;可以创建从光源发出并能穿过图层内容的光线效果。常用于制作光线透过门窗或云层的场景&#xff0c;或者用于创建神奇或梦幻的氛围感。 本效果会被限制在源图层的大小范围之内。 ◆ ◆…

每日一题 98验证二叉搜索树(中序遍历)

题目 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 1&#xff1a…