如何参与一个开源项目!

news2024/11/15 11:45:47

今天教大家如何给开源项目提交pr,成为一名开源贡献者。pr是 Pull Request 的缩写,当你在github上发现一个不错的开源项目,你可以将其fork到自己的仓库,然后再改动一写代码,再提交上去,如果项目管理员觉得你的提交还不错的话,就会将你的代码合并,然后你就成为了这个代码的贡献者了。

基础的git操作咱今天就不说了,直接步入正题,傻瓜式流程,直接按步操作即可。

一、fork代码

先登录自己的github账户,找到自己要提pr的项目。这里我们以element-plus为例。

 

进入主页后,可以看到右上角有Fork按钮,点击之后,等待几秒就会fork成功。

 我们可以看到,此时该项目就跑到我们自己的仓库目录下了,接下来我们就可以将该项目克隆到本地,进行后续操作。

二、clone代码

1.点击页面上右边的Code绿色按钮,再点击复制按钮,复制该链接,将其克隆到本地。

 2.在本地的某个目录下,打开命令行,输入如下代码

git clone https://github.com/smalller/element-plus.git

注意!注意!注意!上面的地址是我仓库的地址,千万不要直接复制,要去复制自己仓库下的地址。

 这样就代表项目已经成功克隆到本地。

3.接下来,我们可以在克隆好的项目的根目录下,用以下命令,查看自己是否与远程仓库建立了连接

git remote -v

 

 可以看到,已经建立连接,接下来还需要与上游建立连接,这里上游指的是一开始fork的那个项目源,即element-plus。

4.与上游建立连接,这段代码可直接复制。

git remote add upstream https://github.com/element-plus/element-plus.git

此时,我们再输入git remote -v,就可以看到本地已经和远程仓库以及上游建立了连接。

 

三、同步最新代码

为什么要这么做?因为当你在开发的时候,可能其他人也在开发,很有可能你fork的代码已经不是最新的了,这时你就需要不断更新你的代码,至少保证在push前要更新一次,这样才能确保不会发生代码冲突。

命令行输入以下代码

git fetch upstream dev  

为什么这里是dev分支,因为该项目默认clone的就是dev分支下的代码。当然这里你也可以自己在本地创建一个分支,然后拉取,最后再去dev分支里合并自己创建的分支代码。

四、编写代码

接下来,就是自由发挥环节了,这里不做过多说明了。

五、提交代码

代码编写完成后,就可以提交代码了。当然,不同开源项目可能会有自己的提交规范,我们可以看下element-plus的提交规范。

整理了一份大厂常考面试题,这份pdf包括 Java基础、Java并发、JVM、MySQL、Redis、Spring、MyBatis、Kafka、设计模式等面试题,分享给大家。

下载:https://pan.baidu.com/s/1q9Z8J69nl4ruoVTKwkUcgQ  提取码: bxwu

 

我们只需按照其中 Pull Request 规范来做即可。

1、commit 代码

git add .
git commit -m fix(components): [el-scrollbar] fix xxx bug

2、push 代码

git push origin dev

push代码成功后,我们就将进行最后一步,提交pr。

六、提交pr

我们回到自己仓库的项目主页,可以看到刚才提交的记录,则表示之前的操作都已成功。接下来,点击箭头所指的 Pull Requests 选项。

 

点击箭头所指的 New pull request 按钮

 

接下来,点击 Creat pull request 即可提交成功。

 

最后,只需耐心等待管理员的审核即可。开源项目的所有pr记录可以在这里查看,包括你刚才提交的。

 

如果你的提交被审核通过,则会像下面这个这样,显示 All checks have passed

 

这样,整个提交pr流程就已完成,是不是觉得很简单,可以自己去试试哦,毕竟能成为一个开源项目的贡献者还是挺不错的,也算是面试的加分项。

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

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

相关文章

【建议收藏】回收站数据恢复如何操作?3个方案帮你恢复删除的文件

在使用电脑时,我们经常会清理不需要的文件数据。电脑回收站被清空了,但是里面有我们重要的数据,回收站数据恢复如何操作?不如试试下面的3个方案,一起来了解一下回收站数据恢复吧! 一、注册表恢复回收站数据…

电脑视频转换成mp4格式,视频格式转换器转换

怎么把电脑视频转换成mp4格式?使用视频转换器,可以转换来自各种设备的音视频格式,包括相机、手机、视频播放器、电视、平板电脑等。因此,音视频爱好者都可以使用它在各种设备上播放或在社交平台上分享。 主要人群及作用&#xff1…

BHQ-2 NHS,916753-62-3作为各种荧光共振能量转移DNA检测探针中淬灭部分

英文名称:BHQ-2 NHS CAS:916753-62-3 外观:深紫色粉末 分子式:C29H29N7O8 分子量:603.59 储存条件:-20C,在黑暗中 结构式: 凯新生物产品简介: 黑洞猝灭剂-2&#…

pytorch初学笔记(九):神经网络基本结构之卷积层

目录 一、torch.nn.CONV2D 1.1 参数介绍 1.2 stride 和 padding 的可视化 1.3 输入、输出通道数 1.3.1 多通道输入 1.3.2 多通道输出 二、卷积操作练习 2.1 数据集准备 2.2 自定义神经网络 2.3 卷积操作控制台输出结果 2.4 tensorboard可视化 三、完整代码 一、torc…

NestJS 使用体验 | 不如 Spring Boot

本博客站点已全量迁移至 DevDengChao 的博客 https://blog.dengchao.fun , 后续的新内容将优先在自建博客站进行发布, 欢迎大家访问. 文章目录前言正文开发体验运行体验总结相关内容推广前言 公司里近期在尝试部署一些业务到阿里云的函数计算上, 受之前迁移已有的 Spring Boot…

TestStand-调试VI

文章目录调试VI调试VI 在LabVIEW PASS/FAIL TEST步骤中放置一个断点。 ExecuteRun MainSequence。执行在LabVIEW PASS/FAIL处暂停测试步骤。 3.完成以下步骤来调试LabVIEW PASS/FAIL TEST VI步骤。 a.在TestStand的调试工具栏上单击step into(步进)…

System V IPC+消息队列

多进程与多线程 使用有名管道实现双向通信时,由于读管道是阻塞读的,为了不让“读操作”阻塞“写操作”,使用了父子进程来多线操作, 1)父进程这条线:读管道1 2)子进程这条线:写管道2…

【二叉树的顺序结构:堆 堆排序 TopK]

努力提升自己,永远比仰望别人更有意义 目录 1 二叉树的顺序结构 2 堆的概念及结构 3 堆的实现 3.1 堆向下调整算法 3.2 堆向上调整算法 3.3堆的插入 3.4 堆的删除 3.5 堆的代码实现 4 堆的应用 4.1 堆排序 4.2 TOP-K问题 总结: 1 二叉树的顺序结…

分享几招教会你怎么给图片加边框

大家平时分享图片的时候,会不会喜欢给照片加点装饰呢?比如加些边框、文字或者水印之类的。我就喜欢给图片加上一些边框,感觉加了边框的照片像裱在相框中的感觉似的,非常有趣。那么你知道如何给图片加边框吗?不知道的话…

【Nginx】01-什么是Nginx?Nginx技术的功能及其特性介绍

目录1. 介绍1.1 常见服务器的对比1)IIS2)Tomcat3)Apache4)Lighttpd1.2 Nginx的优点(1) 速度更快、并发更高(2) 配置简单、扩展性强(3) 高可靠性(4) 热部署(5) 成本低、BSD许可证2. Nginx常用功能2.1 基本HTTP服务2.2 高级HTTP服务…

华为数通2022年11月 HCIP-Datacom-H12-821 第二章

142.以下关于状态检测防火墙的描述,正确是哪一项? A.状态检测防火墙需要对每个进入防火墙的数据包进行规则匹配 B.因为UDP协议为面向无连接的协议,因此状态检测型防火墙无法对UDP报文进行状态表的匹配 C.状态检测型防火墙只需要对该连接的第一…

性能测试-CPU性能分析,IO密集导致系统负载高

目录 IO密集导致系统负载高 使用top命令-观察服务器资源状态 使用vmstat命令-观察服务器资源状态 使用pidstat命令-观察服务器资源状态 使用iostat命令-观察服务器资源状态 IO密集导致系统负载高 stress-ng -i 10 --hdd 1 --timeout 100-i :有多少个工作者进行&#…

函数的极限:如何通过 δ 和 ϵ 来定义一个连续的函数

连续的定义 维基百科给出的定义: 连续函数(英语:Continuous function)是指函数在数学上的属性为连续。直观上来说,连续的函数就是当输入值的变化足够小的时候,输出的变化也会随之足够小的函数。 所以不要直…

51单总线控制SV-5W语音播报模块

单总线控制SV-5W语音播报模块SV-5W语音播报模块SV-5W语音播报模块简介工作模式说明模块配置接线驱动部分代码效果展示SV-5W语音播报模块 SV-5W语音播报模块简介 DY-SV5W是一款智能语音模块,集成IO分段触发,UART串口控制,ONE_line单总线串口控…

macOS monterey 12.6.1安装homebrew + nginx + php + mysql

效果图 主要步骤 安装homebrew使用brew安装nginxphpmysql详细步骤 参考“Homebrew国内如何自动安装(国内地址)(Mac & Linux)”安装brew, 命令: /bin/zsh -c "$(curl -fsSL https://gitee.com/cu…

[附源码]java毕业设计网上学车预约系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

教你十分钟在Linux系统上快速装机并安装Ansible

PS:本教程建立在VMware软件上的使用上,Linux版本为centos7或者centos8都可以。 一、看发行版本 cat /etc/redhat-release 二、修改主机名 hostnamectl set-hostname centos8 三、自动获取IP地址 nmcli connection modify ens160 autoconnect yes 四、设置…

软件设计(一):统一建模语言基础知识

1.UML简介 1.1 UML简介 UML语言是一种可视化的标准建模语言,它是一种分析和设计语言,通过UML可以构造软件系统的蓝图。 1.2 UML的结构 1.2.1 视图(view) 1.2.2 图(daigram) 用例图 类图 对象图 包图…

C/C++ 语言怎么保留n位小数并且四舍五入

1、普通的printf输出打印 printf()函数的用例 float date=123.456; printf("date=%.2f\n", date);//保留2位 printf("date=%.1f\n", date);//保留1位 输出 2、获取四舍五入后的数据 1、使用round函数 C ++ round()函数 (C++ round() function) round(…

ELK技术栈简介

ELK技术栈简介ELK是什么ELK组件ElasticsearchES基本概念ES适用场景LogstashInput插件Filter插件Output插件CodecsKibanaBeatsELK是什么 ELK 即 Elasticsearch Logstash Kibana,是指Elastic公司开发的三种免费开源软件。其中,Elasticsearch是一个基于A…