fetch整个仓库 github_为开源项目做贡献的10个步骤,GitHub贡献的简短指南

2023-10-27

在本文中,我将给出10个简单的步骤,以确保GitHub的贡献快速而干净。

贡献的生命周期(步骤)

1.fork主仓库

fork主仓库会在你的帐户中创建一个副本。你可以进行更改并将任何代码推送到此fork,而不必担心会弄乱原始代码库。单击页面顶部的fork按钮以创建一个新的fork。

Fork后的版本库现在可以在你的账户中的“Repositories”部分找到。

2.Fork后的仓库克隆到你的电脑

Fork后的仓库克隆到电脑上,这样我们就有了代码的本地副本。单击Fork后的仓库的SSH或HTTPS URL旁边的剪贴板图标来复制它。

现在在你的电脑上打开一个终端,然后运行以下命令来克隆fork的仓库:

git clone git@github.com:theawesomenayak/guava.git

3.创建功能/特性分支

在对代码进行任何修改时,最好的做法是为我们需要进行的修改创建一个新的特性分支。这样可以确保我们保持master分支的整洁,并且能够在必要时简单地还原我们的代码或进行更新。

切换到克隆分支仓库后创建的目录:

cd guava

创建一个新特性分支,其名称可以标识你计划进行的更改。例如:

git checkout -b fix-npe-issue

4.将更改提交到特性分支

如果你在更改中创建了任何新文件,则需要将其添加到刚创建的分支中。

git add <filename>

对于所做的所有更改,你必须将它们提交到分支。确保添加有效的提交消息(根据项目的约定):

git commit -m "Fixed the NPE issue due to a null key used in cache"

5.将特性分支推到你fork的仓库

现在是时候将你的提交推送到fork的仓库中了:

git push origin fix-npe-issue

6.针对主仓库提出Pull Request(PR)

将代码推送到fork后的仓库后,就可以针对主仓库提交PR了。单击“Pull Request”按钮以启动新的PR。

这将带你进入一个画面,在这个画面上,你的fork版本库中的变化将与主版本库中的代码进行比较。你可以在提交更改之前查看更改并提供有效的更改描述。

7.处理评论并合并PR

代码维护人员通常会针对你所做的更改返回某些评论,这可以是功能上的改变,也可以是修饰性的改变,比如格式等等。一旦你做出了这些更改,只需将它们推到你的分支,PR就会自动更新。

一旦你的修改没有什么不妥的话,维护人员将把它们合并到主仓库中。恭喜你!!你现在正式成为一名开源贡献者了。

8.将主存储库作为上游添加到克隆仓库中

除了你之外,许多其他开发人员还一直将其代码合并到主存储库中,我们需要与它的分支库连续进行同步,以获取最新的代码。

你克隆的存储库已链接到fork后仓库了,为了使fork的仓库与主仓库保持同步,你需要通过在克隆的仓库中添加主仓库作为上游(upstream)来连接它们。

git remote add upstream git@github.com:google/guava.git

使用以下命令验证上游设置是否正确:

git remote -v

它应该显示以下值,以确认源和上游指向正确的仓库:

origin  git@github.com:theawesomenayak/guava.git (fetch)
origin  git@github.com:theawesomenayak/guava.git (push)
upstream        git@github.com:google/guava.git (fetch)
upstream        git@github.com:google/guava.git (push)

9.从上游更新你的master分支

设置上游后,你可以提取其他开发人员在主仓库中所做的更改,这将更新本地计算机上的克隆仓库:

git pull upstream master

10.将主分支push到你的fork仓库

一旦你在你的本地机器上有了所有的更新,你将需要把它们推送到你的fork后的仓库中,使其与主仓库同步。

git push origin master

(可选)删除特性分支

特性合并到主仓库后,便不再需要它,可以将其删除:

git branch -d fix-npe-issue

你还可以从fork的仓库中删除远程分支:

git push origin --delete fix-npe-issue

最后

为GitHub项目做贡献可能会很棘手,这取决于有多少开发人员同时在做。希望这篇文章能为你扫清GitHub贡献的流程,让你的开发周期变得更简单一些。

感谢你花时间阅读我的文章。


原文:https://medium.com/better-programming

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fetch整个仓库 github_为开源项目做贡献的10个步骤,GitHub贡献的简短指南 的相关文章

  • Linux 中卷组不真实存在情况下,强制删除卷组及其PV信息

    由于手误删除lVm顺序不对 导致真实pV 已经不存在 但是卷组信息及其PV信息还存在系统中 pvdisplay和vgdisplay都能看到信息 这时候可以到 dev 目录下手动rm 掉 pv 再查看卷组 就真的不存在了
  • Android取消点击效果,Android中如何取消listview的点击效果

    Android中如何取消listview的点击效果 在xml文件里面有listselecter的属性引用 android layout width match parent android layout height wrap conten
  • 【3D游戏基础】蒙皮骨骼动画与骨架

    效果 目标 画出蒙皮动画的骨架 视频 https www bilibili com video BV1pM411m7Yw PPT https zfxdvouj61 feishu cn file boxcnwgESO6zdQetO7oNhKb
  • vant Cascader 级联选择 异步加载

  • .suo介绍

    suo suo是一种文件的格式 suo 解决方案用户选项 记录所有将与解决方案建立关联的选项 以便在每次打开时 它都包含用户所做的自定义设置 比如VS布局以及项目最后编译的而又没有关掉的文件用于下次打开时用 其中 VS布局包括 监视器123
  • Linux性能测试工具

    在Linux Benchmark Suite Homepage网站上列举了诸多Linux性能测试工具 包括CPU RAM ROM Cache net等性能测试 lmbench 测试工具 这个工具集中包含以下几种测试工具 我们主要使用到bw
  • 织梦DedeCMS移动站的搜索功能实现方法

    很早之前在做博客的时候 就考虑到把搜索功能在移动端实现 初略的做完后 发现移动端总是会跳转到pc模版 很不友好 前几天 刚好有时间就把这个功能给实现了 其实很简单 接下来放出教程 一 复制 plus search php文件 打开PC端的文
  • ClickHouse之单表多表查询优化

    文章目录 1 本文简介 2 单表查询优化 1 Prewhere 替代 where 2 数据采样 3 指定select字段查询与分区裁剪 4 orderby结合 where limit 5 避免构建虚拟列 6 uniqCombined 替代
  • Maven Helper mvn项目冲突如何解决

    一般用这款插件来查看maven的依赖树 一 安装 File gt setting gt Plugins gt 在搜索框中填写Maven Helper然后搜索 单击Install按钮进行安装 装完重启IDE 二 使用 当Maven Helpe
  • 使用BP神经网络和Elman Net预测航班价格(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 BP神经网络模型是目前应用最为广泛神经网络
  • Unity 自定义鼠标样式

    using System Collections using System Collections Generic using Framework using UnityEngine
  • BCryptPasswordEncoder的matches方法返回false

    用BCryptPasswordEncoder 做加密 在判断时要用该对象的matches方法 第一个参数为明文 第二个参数才是密文 public static void main String args BCryptPasswordEnco
  • 欧启标O老师STM32课程笔记(二)——蜂鸣器发声

    1 硬件原理 下图为蜂鸣器的电路图 分析这个电路 想让蜂鸣器发声 则需要有电流流过蜂鸣器 当BEEP 即PB8 为高电平时 三极管导通 电流流过蜂鸣器 蜂鸣器发声 反之 当BEEP 即PB8 为低电平时 三极管截止 蜂鸣器不发声 所以控制蜂
  • Rxjava参考文档

    https mcxiaoke gitbooks io rxdocs content operators Timer html
  • lua动态链接库(luaopen_*函数的使用)

    lua中使用c动态库 像luacjson 支持unicode luasocket 都是以动态链接库的形式在lua中使用的 至于怎么写这些动态链接库很少有教程说到 下面我就说说如何把c文件编译成动态库 首先 假设需要在lua中调用一个在c中实
  • 第二章 组合逻辑设计

    第二章 组合逻辑设计 1 卡诺图化简 1 1 必须是偶数项化简 因为卡诺图只有相邻格可以消除一个项 1 2 积之和形式的化简 消除相邻的1项 得到f 1 3 和之积形式的化简 消除相邻的0项 得到f 的积之和形式 然后再通过狄摩根定律转换成
  • python 按照行取平均值补齐缺失数据

    import pandas as pd 根据行来求平均值 def fill NAN filePath r E study python 0819 filled meter 500 csv df0 pd read csv filePath e
  • 线程池参数配置与Linux CPU

    1 线程池核心线程数配置 1 核心线程计算 计算密集型 cpu的个数 1 IO密集型 2 cpu个数 1 2 linux查看cpu核数 查看物理CPU个数 cat proc cpuinfo grep physical id sort uni

随机推荐

  • Educoder--Java高级特性 - 多线程基础(2)常用函数

    注意啦 这期的复制又恢复正常了 第一题 有三种原因可以导致线程不能运行 它们是 A 等待 B 阻塞 C 休眠 D 挂起及由于I O操作而阻塞 Java语言中提供了一个 线程 自动回收动态分配的内存 A 异步 B 消费者 C 守护 D 垃圾收
  • 字符串截取大全

    C 几个经常用到的字符串的截取 string str 123abc456 int i 3 1 取字符串的前i个字符 str str Substring 0 i or str str Remove i str Length i 2 去掉字符串
  • [C语言]猜数字

    本文章为c语言猜数字小游戏的教学 设计思路 目录 1 菜单的创建 2 猜数字的实现 3 完整代码 1 菜单的创建 先设计一个类似菜单的界面 供选择来实现游戏或退出 void menu printf n printf 猜数字 n printf
  • iTween基础之Look(使对象面朝指定位置)

    一 基础介绍 二 基础属性 原文地址 http blog csdn net dingkun520wy article details 50578142 一 基础介绍
  • 【Java基础】关于语言:编译型与解释型

    编译型 一 定义 使用专门的编译器 针对特定的平台 将高级语言源代码一次性的编译成可被该平台硬件执行的机器码 并包装成该平台所能识别的可执行性程序的格式 二 特点 程序执行前需要专门的一个编译过程 将源代码编译成机器语言 如 exe后缀的文
  • Python调用sort函数自定义排序函数

    当有一组比较复杂的对象需要进行排序时 我们的第一想法就是尽量利用已有的函数快速完成自己的排序需求 接触过c 的码友应该知道 在c 里若想利用已有的sort函数来完成复杂的排序 对运算符进行重载即可 好久没接触过c 里的概念 应该是这个叫法
  • java项目连接mysql卡死_我的Java连接数据库之后就卡住了 不能输出结果 到底是为什么呢?程序的功能是要完成一个地址的最大正向查...

    以下是基本的函数实现最重要的是第四个要实现街道的最大正向查找 ResultSetrs s executeQuery sql if rs next Stringpostaddress rs getString 1 Joutput setTex
  • 用Python开始机器学习(5:文本特征抽取与向量化)

    假设我们刚看完诺兰的大片 星际穿越 设想如何让机器来自动分析各位观众对电影的评价到底是 赞 positive 还是 踩 negative 呢 这类问题就属于情感分析问题 这类问题处理的第一步 就是将文本转换为特征 因此 这章我们只学习第一步
  • Hyperledger Fabric 应用实战(3)--配置文件core.yaml

    1 简介 core yaml主要是为Peer服务提供一些配置定义 当Peer节点启动时 会先从命令行获取参数 环境变量 和core yaml读取配置信息 通过docker去搭建一个Peer服务 命令行默认是不带参数的 主要通过docker
  • 考研 打赢这场信息站 上岸

    23考研已经结束了 新的考研马上开始 考研 是一个 持久战 也是一个 信息战 因为大多数同学都是自我监督 自我学习 所以经常出现想要摆烂 放弃的念头 意念坚定的同学只占一小部分 这个时候我们就要先在考研之前进行问题分析 这是一个非常非常重要
  • Spark Streaming入门

    什么是Spark Streaming 首先 什么是流 streaming 数据流是连续到达的无穷序列 流处理将不断流动的输入数据分成独立的单元进行处理 流处理是对流数据的低延迟处理和分析 Spark Streaming是Spark API核
  • openssl常用参数

    文章目录 前言 对称加密 标准语法 常用选项 应用示例 单向加密 标准语法 常用选项 应用示例 参考文档 前言 OpenSSL 是一个开源项目 可以实现 秘钥证书管理 对称加密和非对称加密 其主要由一下三个组件组成 openssl 多用途的
  • Synchronized与锁升级

    目录 1 先从阿里及其他大厂面试题说起 2 路线总纲 3 Synchronized的性能变化 4 Synchronized锁种类及升级步骤 4 1多线程访问情况 3种 4 2升级流程 4 3无锁 4 4偏向锁 4 5轻量级锁 4 6重量级锁
  • 【经典】springboot 配置文件统一管理

    背景 为实现快速搭建和开发 项目以Springboot框架搭建 springboot搭建的项目可以将项目直接打成jar包并运行 无需自己安装配置Tomcat或者其他服务器 是一种方便快捷的部署方式 假设项目以最常规的方式打包成一个整体的ja
  • Onvif协议学习:7、鉴权认证

    Onvif协议学习 7 鉴权认证 文章目录 Onvif协议学习 7 鉴权认证 1 前言 2 ONVIF哪些接口需要认证 3 如何认证 4 安装OpenSSL 5 实现认证 6 特别注意 原文链接 https blog csdn net be
  • QT学习(十九)——用QFile读写文件

    写文件 两种方法 1 第一种使用QString获取编辑区的内容之后直接用toUtf8 转化为QByteArray 2 第二种使用QString获取编辑区的内容之后先转化成std string 再转换成char 不过最后的文件类型都是UTF
  • Zookeeper(一)简介说明

    1 1 什么是Zookeeper Zookeeper是一个高效的分布式协调服务 它暴露了一些公用服务 比如命名 配置管理 同步控制 群组服务等 我们可以使用ZK来实现比如达成共识 集群管理 leader选举等 Zookeeper是一个高可用
  • 编写高质量代码:改善Java程序的151个建议(第9章:多线程和并发___建议125~131)

    建议125 优先选择线程池 建议126 适时选择不同的线程池来实现 建议127 lock与synchronized是不一样的 建议128 预防线程死锁 建议129 适当设置阻塞队列的长度 建议130 使用CountDownLatch协调子线
  • Spring Cloud Alibaba核心组件概述

    目录 概览 Nacos 注册中心 配置中心 Sentinel 限流 熔断降级 控制台 动态规则扩展 Seata AT模式 TCC模式 Saga模式 XA模式 Spring Cloud Gateway 关键特性 核心概念 负载均衡 概览 Sp
  • fetch整个仓库 github_为开源项目做贡献的10个步骤,GitHub贡献的简短指南

    在本文中 我将给出10个简单的步骤 以确保GitHub的贡献快速而干净 贡献的生命周期 步骤 1 fork主仓库 fork主仓库会在你的帐户中创建一个副本 你可以进行更改并将任何代码推送到此fork 而不必担心会弄乱原始代码库 单击页面顶部