git fork的項目遠端標準協作流程 倉庫設置[設置成upstream]

這是一個在開源協作中非常常見的配置。

簡單來說,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++軟件異常排查從入門到精通系列教程…