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

news2025/1/20 21:56:41

如何飞速成为开源贡献者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.coloradmin.cn/o/951076.html

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

相关文章

电脑突然提示msvcr120.dll错误的解决方法,最全面的解决方法

今天,我将和大家分享一种常见的电脑问题——电脑突然提示msvcr120.dll错误的解决方法。希望通过这次演讲,能够帮助大家解决这个问题,提高大家的电脑使用效率。首先,让我们来了解一下msvcr120.dll是什么。msvcr120.dll是Microsoft …

CMH检验

前言 CMH检验(Cochran-Mantel-Haenszel Test),分层卡方检验,考虑中心效应,分析干预对结果的影响。如果存在中心效应,即干预结果与中心相关,那么简单的将中心数据合并做卡方分析并不合理。需要采…

记事本编辑代码出错?编程初学者为什么不要用系统文本编辑器? 文本编辑器踩坑指南,代码格式化无效,写代码必看

题目: 写一段判断 2 到 10 之间的质数的输出 环境 左: VScode 右: Windows 文本编辑器(记事本) 目录 代码展示 原视频介绍 图文介绍 更离谱的是使用vscode 一键格式化 摆烂??? 最终手动缩进才解决问题 解决问题 那么问题究竟出在哪里? 文本比较即可 还是不够直…

“媒体+”时代正当时,ATEN以前瞻解决方案助推媒体融合纵深发展

自媒体融合概念提出以来,传统媒体与新媒体融合速度加快,两者的相互结合与优势互补为广电行业发展提供了新的契机,更加多元化、个性化、强互动的“媒体”传播格局已逐渐形成。 “媒体”理念的创建,对于广电行业而言无疑是一种积极的改革创新之举,然而“媒体”的发展也呈现出泛媒…

Redis与Mysql区别

一、关系型数据库 mysql,pgsql,oracle ,sqlserver 支持连表关联查询(会有一些特定的语法特特性) 二、非关系型数据库 redis,mongodb,memcache (key-value) 三、关系型数据库与非关系型数据库的区别: 1&am…

idea 显示内存占用,分配内存实时内存

1、打开项目 2、双击“shift” 3、输入show memory indicator 4、打开开关,搞定! 5、效果

【git】Idea撤回本地分支、或远程分支提交记录的各种实际场景操作步骤

文章目录 idea撤回本地分支、远程分支场景操作集合场景1:要撤回最后一次本地分支的提交实现效果:操作步骤: 场景2:要撤回最后一次远程分支的提交有撤销记录的:实现效果:操作步骤: 无撤销记录的&…

MySQL内容及原理记录

原理篇 架构、索引、事务、锁、日志、性能调优 高可用 读写分离、分库分表、分布式ID、高可用、分布式数据库、分布式事务、分布式锁 架构 1 执行一条 SQL 查询语句,期间发生了什么? (1)连接器:客户端通过连接器…

Java five 分析String、Character、Scanner、Number 和 Math 类使用方法

目录 Java String 类使用方法1. 连接字符串2. String 方法3. Java StringBuffer 和 StringBuilder 类 Java Character 类Character 方法使用 Java Scanner 类Java Number & Math 类1. Number 类2. Math 类3. Number & Math 类方法 Java String 类使用方法 String 类是不…

idea配置默认javadoc类、接口注释,自动生成文档

idea配置 类 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} ! "")package ${PACKAGE_NAME};#end #parse("File Header.java") /*** 总体描述* <p>创建时间&#xff1a;${DATE} ${TIME}</p>* author zhaoXin* since v1.0*/ public class $…

【软考】系统集成项目管理工程师(三)信息系统集成专业技术知识①【16分】

一、系统集成的特点 官方解释&#xff1a; 1、信息系统建设的内容主要包括设备采购、系统集成、软件开发和运维服务等&#xff1b; 2、信息系统集成是指将计算机软件、硬件、网络通信、信息安全等技术和产品集成为能够满足用户特定需求的信息系统&#xff1b;显著特点如下&am…

C++有向、无向完全图的边数

一、无向完全图 一个拥有n个结点的无向完全图的边数为&#xff1a; 公式&#xff1a; 简写&#xff1a; &#xff08;表示个顶点中有条边&#xff09; 具体的解释&#xff1a; 比如我们有一个拥有个结点的无向完全图 我们首尾依次连接&#xff0c;共有条边。 然后我们选择…

51单片机(普中HC6800-EM3 V3.0)实验例程软件分析 电位器AD实验

一、直接上代码 /************************************************************************************** * 电位器AD实验 * 实现现象&#xff1a;下载程序后数码管后4位显示电位器检测的AD值&#xff0c;范围是0-4095&#xff0c;一般达不到最…

【linux命令讲解大全】001. bzcat和cat命令的使用指南及示例

文章目录 bzcat解压缩指定的.bz2文件补充说明语法参数实例 cat概要主要用途参数选项返回值例子从零学python bzcat 解压缩指定的.bz2文件 补充说明 bzcat命令解压缩指定的.bz2文件&#xff0c;并显示解压缩后的文件内容。保留原压缩文件&#xff0c;并且不生成解压缩后的文件…

Tutorial: Mathmatical Derivation of Backpropagation

目录 1. 概要 2. Gradient Descent 3. Chain rule 3.1 单变量基本链式法则 3.2 单变量全微分链式法则 3.3 小贴士&#xff1a;微分、导数、导函数是什么关系&#xff1f; 4. What and why backpropagation? 5. Backpropagation for a simple neural network 5.1 基于…

一篇掌握高级交换技术原理与配置(二):mux-vlan

一、概述 MUX VLAN&#xff08;Multiplex VLAN&#xff09;提供了一种通过VLAN进行网络资源控制的机制。通过MUX VLAN提供的二层流量隔离的机制可以实现企业内部员工之间互相交流&#xff0c;而企业客户之间是隔离的。 MUX VLAN分为Principal VLAN&#xff08;主VLAN&#xf…

PANAMA: 共享机器学习集群的网内聚合框架

随着深度学习训练规模的增长&#xff0c;在共享集群内同步训练数据的需求越来越多&#xff0c;怎样高效利用网络资源平衡各种负载的需求&#xff0c;也成了业界关注的课题。MIT的这篇论文提出了一种网内聚合框架&#xff0c;能够大幅降低并行数据作业的流量负载&#xff0c;从而…

外观设计专利注册

专利注册的种类分为好几种&#xff0c;其中一种就是外观设计专利。我国《专利法》二条四款对外观设计的定义是&#xff1a;“外观设计是指对产品的形状、图案或其结合以及色彩与形状、图案的结合所作出的富有美感并适于工业应用的新设计。”并在《专利法》二十三条对其授权条件…

RISC-V(2)——特权级及特权指令集

目录 1. 特权级 2. 控制和状态寄存器&#xff08;CSR&#xff09; 2.1 分类 2.2 分析 1. 特权级 一个 RISC-V 硬件线程&#xff08;hart&#xff09;是运行在某个特权级上的&#xff0c;这个特权级被编码到一个或者多个 CSR&#xff08;control and status register&a…

【JavaEE基础学习打卡00】该专栏知识大纲在这里!

目录 前言一、为什么有该教程二、教程内容介绍1.JavaEE2.JDBC3.JSP编程4.JavaBean5.Servlet6.综合案例7.拦截器、过滤器 三、学习前置要求四、课程服务总结 前言 &#x1f4dc; 本系列教程适用于 Java Web 初学者、爱好者&#xff0c;小白白。我们的天赋并不高&#xff0c;可贵…