这是一个在开源协作中非常常见的配置。

简单来说,upstream 在这里指的是你 Fork 来的那个原始的、官方的仓库

下面我们来详细解释一下这个 git remote -v 输出的含义:

1. 两条“遥控器” (Remotes)

你的 git 配置了两个远程仓库的地址,就像电视有两个遥控器,一个控制你的电视,一个控制你邻居(官方项目)的电视。

  • origin: 这是你自己的仓库。

    • https://github.com/Tipriest/ocs2.git
    • 这通常是你从 GitHub 上 Fork (分叉) 过来的项目,它属于你自己的账号 (Tipriest)。
    • 你对这个仓库有完全的读写权限。你开发的新功能、修复的 bug,都会 push (推送)到这里。
  • upstream: 这是项目的“上游”,即原始官方仓库

    • git@github.com:leggedrobotics/ocs2.git
    • 这是 ocs2 这个项目的官方维护地址,属于 leggedrobotics 这个组织。
    • 你通常只有只读权限。你的主要操作是从这里 fetch (拉取) 最新的官方更新,以保持你的 Fork 和官方版本同步。

2. 这个工作流有什么用?(The Fork & Pull Request Workflow)

这种 origin + upstream 的配置是开源社区最标准的协作流程,通常按以下步骤进行:

  1. Fork: 你在 GitHub 上看中了 leggedrobotics/ocs2 这个项目,于是点击 “Fork” 按钮,在你的账号下创建了一个副本 Tipriest/ocs2

  2. Clone: 你把你自己的副本克隆到本地电脑:

    git clone https://github.com/Tipriest/ocs2.git
    

    这时,git remote -v 只会显示 origin

  3. Add Upstream: 为了能方便地获取官方仓库的最新更新,你手动添加了 upstream 这个远程地址:

    git remote add upstream git@github.com:leggedrobotics/ocs2.git
    

    执行完这步,你的 git remote -v 就和你提供的一样了。

  4. 同步更新: 当官方仓库 (upstream) 有了新的提交,而你的 Fork (origin) 落后了,你可以这样做来同步:

    # 1. 从官方仓库拉取最新的代码和分支信息
    git fetch upstream# 2. 切换到你的主分支 (可能是 main 或 master)
    git checkout main# 3. 将官方仓库的更新合并到你的本地主分支
    git merge upstream/main# 4. 将同步后的主分支推送到你自己的 GitHub 仓库
    git push origin main
    
  5. 贡献代码:

    • 你在一个新分支上进行开发 (git checkout -b my-new-feature)。
    • 开发完成后,你将这个新分支推送到你自己的仓库 (git push origin my-new-feature)。
    • 最后,你在 GitHub 上创建一个 Pull Request (PR),请求 leggedrobotics/ocs2 的维护者将你的 my-new-feature 分支合并到他们的主分支中。

总结

名称指向你的权限主要用途
origin你自己的 Fork 仓库 (Tipriest/ocs2)读/写推送 (push) 你的个人修改和新功能。
upstream原始的官方仓库 (leggedrobotics/ocs2)只读拉取 (fetch/pull) 官方的最新更新,保持同步。

所以,upstream 是一个约定俗成的名字,代表了代码的“上游”源头,让你的本地仓库能同时与“自己的远程仓库”和“官方的远程仓库”进行交互。

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

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

相关文章

[FFmpeg] 输入输出访问 | 管道系统 | AVIOContext 与 URLProtocol | 门面模式

链接:https://trac.ffmpeg.org/ docs:FFmpeg FFmpeg 是一个强大的多媒体框架,旨在处理媒体处理的各个阶段。 它就像一个数字媒体工厂,包含以下部门:打包/解包(容器处理)、 转译/压缩&#xff…

微服务的编程测评系统2

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言工程创建创建ck-oj创建oj-modules创建具体微服务oj-system推送码云管理员登录逻辑分析docker安装mysqldocker客户端docker desktop安装安装mysqlmysql-plus和数据…

AR智能巡检:电力运维的数字化变革

在电力行业快速发展的当下,传统运维方式已难以满足现代电网对高效、安全的需求。近年来,增强现实(AR www.teamhelper.cn )技术的兴起为电力巡检带来了全新的解决方案。通过实时数据可视化、远程协作和智能分析,AR技术…

NeRF和3DGS原理详细

NeRF和3DGS一、传统三维表征方法1.1 显示表征1.2 隐式表征二、NeRF(Nerual Radiance Field)2.1 NeRF场景表示2.2 NeRF训练流程2.3 NeRF体渲染2.4 NeRF位置编码2.5 NeRF体素分层采样(Volume Hierarchical Sampling)2.6 NeRF网络结构…

035_ClaudeCode_MCP_介绍

035_ClaudeCode_MCP_介绍 摘要 Model Context Protocol(MCP)是一个开放的标准化协议,专为大型语言模型提供上下文数据而设计。作为Claude Code生态系统的重要组成部分,MCP如同"AI应用程序的USB-C端口",提供…

Python 程序无法找到 Oracle 的 64 位客户端库 (libclntsh.so)

数据库错误: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help 这个错误表明 Python 程序无法找到…

Kubernetes常用命令总结

文章目录Kubernetes常用命令总结1. 集群管理命令kubectl cluster-infokubectl get nodeskubectl describe node <node-name>kubectl top nodes2. Pod相关命令kubectl get podskubectl get pods -o widekubectl describe pod <pod-name>kubectl logs <pod-name&g…

roboflow使用教程

如何利用roboflow标注自己的训练集、调用开源数据集 官网&#xff1a;Roboflow: Computer vision tools for developers and enterprises&#xff08;国内代理进不去&#xff09; 先注册登陆进去 训练自己的数据集 点击“New Project”,名字按照自己的需求来 我不想写了&am…

IDEA中使用Tomcat两种方式

Catalogue1 集成本地Tomcat2 Tomcat Maven插件&#xff08;推荐&#xff09;1 集成本地Tomcat 将本地Tomcat集成到Idea中&#xff0c;然后进行项目部署即可 点击编辑配置 点击加号 添加local的Tomcat 配置Application Server 可以修改一下Name 至此&#xff0c;配置完成 …

服务器上的文件复制到本地 Windows 系统

在 Windows 上通过 SSH 连接到 Linux 服务器后&#xff0c;如果需要将服务器上的文件复制到本地 Windows 系统&#xff0c;可以使用以下几种方法&#xff1a;方法 1&#xff1a;使用 scp&#xff08;Secure Copy&#xff09;命令 scp&#xff08;基于 SSH 的安全复制&#xff0…

大语言模型置信度增强实战指南

LLM怎么简单增强置信度 在大语言模型(LLM)的应用中,“置信度增强”核心目标是提升模型输出的可靠性(减少错误/幻觉) 并让模型更清晰地表达自身的不确定性(避免“一本正经地胡说”)。常用方式可分为“输出优化”“知识补充”“校准调整”三大类, 一、基于“推理过程优…

NLP:人名分类器案例分享

本文目录&#xff1a;一、案例介绍&#xff08;一&#xff09;关于人名分类&#xff08;二&#xff09;人名分类数据预览二、案例步骤&#xff08;一&#xff09;导入工具包&#xff08;二&#xff09;数据预处理1. 获取常用的字符数量2. 国家名种类数和个数3.读数据到内存4.构…

3分钟实战!用DeepSeek+墨刀AI生成智能对话APP原型图

如今&#xff0c;AI生成原型图已经逐渐成为产品经理的一项常用辅助技能&#xff0c;不仅能加快设计进程&#xff0c;还能显著提升前期沟通效率。最近我尝试将大语言模型工具与AI原型工具结合测试&#xff0c;目标是看看是否能生成更高质量的原型页面。直到我使用DeepSeek墨刀AI…

CentOS网络配置与LAMP环境搭建指南

一、CentOS配置网络1、查看网卡名称ifconfig2、找到网卡对应配置文件网卡存放路径 &#xff1a;/etc/sysconfig/network-scriptscd /etc/sysconfig/network-scripts3、修改网卡对应配置文件使用 vi/vim 打开文件&#xff0c;查看以下内容vim ifcfg-ens33将ONBOOTno 改为 ONBOOT…

TinyMCE 富文本编辑器在 vue2 中的使用 @tinymce/tinymce-vue

TinyMCE是一款功能强大、高度可定制的富文本编辑器。官方文档 TinyMCE DOCS tinymce-vue包的版本4及更高版本支持Vue.js 3。但不支持Vue.js 2.x。对于Vue.js 2。X应用程序&#xff0c;使用tinymce-vue版本3。 安装TinyMCE和Vue集成包 npm install tinymce/tinymce-vue3 tiny…

LP-MSPM0G3507学习--04GPIO控制

关键函数&#xff1a; DL_GPIO_readPins(GPIO_Regs* gpio, uint32_t pins):同时读一组端口DL_GPIO_writePins(GPIO_Regs* gpio, uint32_t pins)&#xff1a;同时写一组端口DL_GPIO_setPins(GPIO_Regs* gpio, uint32_t pins)&#xff1a;对指定某组端口的某管脚置高DL_GPIO_cle…

LVS(Linux virtual server)-实现四层负载均衡

一、简介LVS:Linux Virtual Server&#xff0c;负载调度器&#xff0c;内核集成&#xff0c;章文嵩&#xff0c;阿里的四层SLB(Server LoadBalance)是基 于LVSkeepalived实现LVS 官网: http://www.linuxvirtualserver.org/二、LVS运行原理2.1LVS 的集群结构2.2lvs相关概念RS&am…

Kubernetes CNI网络插件性能瓶颈排查与优化实践

Kubernetes CNI网络插件性能瓶颈排查与优化实践 CNI&#xff08;Container Network Interface&#xff09;是 Kubernetes 网络层的核心组件&#xff0c;不同 CNI 插件实现了容器间网络通信、多租户隔离、流量限速等功能。然而在大规模集群或高并发业务场景下&#xff0c;CNI 插…

20250720-6-Kubernetes 调度-nodeName字段,DaemonS_笔记

一、污点与容忍&#xfeff;1. 给节点添加污点&#xfeff;1&#xff09;命令格式基本语法&#xff1a;kubectl taint node [node] keyvalue:[effect]示例&#xff1a;kubectl taint node k8s-node1 gpuyes:NoSchedule操作说明&#xff1a;与打标签命令类似&#xff0c;将"…

微软开源项目 Detours 详细介绍与使用实例分享

目录 1、Detours概述 2、Detours功能特性 3、Detours工作原理 4、Detours应用场景 5、Detours兼容性 6、Detours具体使用方法 7、Detours使用实例 - 使用Detours拦截系统库中的UnhandledExceptionFilter接口,实现对程序异常的拦截 C++软件异常排查从入门到精通系列教程…