git仓库和分支的关系

1️⃣ 仓库分支(Repository Branch)

  • 每个 Git 仓库都有自己的分支结构。

  • 分支决定你当前仓库看到的代码版本。

  • 示例:仓库分支只是局部修改,项目分支才是全局管理所有仓库分支的概念。

wifi_camera 仓库: - main - dev - feature_x

切换分支后,你看到的就是这个仓库的对应版本。


1️⃣ 本地分支(Local Branch)

  • 存在于你本地仓库的分支。

  • 你可以在上面自由修改、提交(git commit)。

  • 只有你本地可见,除非推送到远程仓库。

2️⃣ 远程分支(Remote Branch)

  • 存在于远程仓库(如 origin)的分支。

  • 远程分支通常以 remotes/origin/分支名 的形式显示。

  • 不能直接修改,需要先拉取(git fetch/git pull)到本地分支,再操作。

3️⃣ 本地分支与远程分支的关系

  • 跟踪关系(Tracking):本地分支可以设置跟踪某个远程分支。

    • 例如,你本地的 release/AC792N_SDK_V3 可能跟踪远程的 origin/release/AC792N_SDK_V3

    • 这样你执行 git pull 就会拉取远程分支的更新到本地分支。

  • 推送关系:本地分支修改后,可以 git push 到远程分支。

  • 同步

    • git fetch:更新远程分支信息,但不改变本地分支。

    • git pull:先 fetch,再把远程分支合并到本地分支。


🔹 举个例子
远程 origin:release/AC792N_SDK_V3feature/openvg本地:* release/AC792N_SDK_V3 (跟踪 origin/release/AC792N_SDK_V3)dev_temp (未跟踪远程)
  • 当你在本地 release/AC792N_SDK_V3 提交后,执行 git push 会把修改同步到远程的 origin/release/AC792N_SDK_V3

  • 当远程 origin/feature/openvg 有更新,你本地没有这个分支时,需要先 git checkout -b feature/openvg origin/feature/openvg 才能操作。


1️⃣ wifi_sdk 仓库

  • 这是 顶层仓库,也就是你 repo init / repo sync 拉下来的根仓库。

  • 它的内容通常包括整个项目的 整体结构,以及一些公共配置或顶层构建文件(比如 build/)。

  • wifi_sdk 仓库下,你看到的 release/AC792N_SDK_V3 分支就是属于 这个仓库 的分支。


2️⃣ wifi_sdk/apps/common 仓库

  • 这是一个 子仓库(sub-repo),通过 repo 管理工具纳入到 wifi_sdk 项目中。

  • 它只管理自己的一部分代码(比如 common 相关的应用或模块)。

  • 它有自己的分支和远程仓库,与顶层 wifi_sdk 仓库相对独立。

  • 你在 wifi_sdk/apps/common 下可以用 git branch -a 查看它自己的分支,而不是顶层仓库的分支。


3️⃣ 总结区别

项目类型分支归属内容
wifi_sdk顶层仓库release/AC792N_SDK_V3整个项目结构,build脚本等
wifi_sdk/apps/common子仓库(sub-repo)它自己的分支common模块相关的代码
  • 顶层仓库管理整体项目和子仓库列表

  • 子仓库只管理自己的一小部分代码,它的分支独立于顶层仓库。

  • repo list 就是列出顶层仓库下所有的子仓库及路径。


1️⃣ repo list

  • 作用:列出整个 项目下的所有 Git 仓库

  • 范围:整个项目,无论你当前在本地哪个子仓库目录下,都会显示项目中定义的所有仓库。

  • 信息:每个仓库的路径、仓库在远程的目录或来源(manifest 里定义的)。

  • 例子

wifi_sdk/apps/wifi_camera : wifisdk/wifi_camera/apps wifi_sdk/lib/media : department/firmware6/media

意思是项目里有 wifi_camera 仓库、media 仓库,它们分别对应这些路径。


2️⃣ git branch -a

  • 作用:列出 当前 Git 仓库 的所有分支。

  • 范围:仅限你当前所在的仓库。

  • 信息

    • 本地分支(* release/AC792N_SDK_V3 表示当前分支)

    • 远程分支(remotes/origin/master 等)


🔹 总结对比

命令范围显示内容用途
repo list项目级所有仓库及路径查看项目里有哪些仓库
git branch -a仓库级当前仓库本地和远程分支查看当前仓库有哪些分支

简单理解:

  • repo list → 看“项目里都有谁”

  • git branch -a → 看“我自己这个仓库里有哪些分支”

———————————————————————————————————————————

重定向:

remotes/m/wifi_video_master -> origin/wifi_video_master

这其实不是「两个分支」同时存在,而是一个符号引用(symbolic-ref),你可以理解成 别名/快捷方式

也就是说:

  • m/wifi_video_master 其实不是真的有分支,它只是一个「指针」,指向 origin/wifi_video_master

  • 你看到的 -> 就说明 m/wifi_video_master 这个名字只是 重定向到 origin/wifi_video_master

  • 所以你本地并没有真正 m/wifi_video_master 的对象,它只是一个别名。

m是一个仓库名,origin也是一个仓库名

———————————————————————————————————————————

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

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

相关文章

Linux的基本操作

Linux 系统基础操作完整指南一、文件与目录操作1. 导航与查看pwd (Print Working Directory)作用:显示当前所在目录的完整路径示例:pwd → 输出 /home/user/documents使用场景:当你在多层目录中迷失时快速定位当前位置ls (List)常用选项&…

npm设置了镜像 pnpm还需要设置镜像吗

npm配置镜像后是否需要为pnpm单独设置镜像? 是的,即使您已经为npm设置了镜像源(如淘宝镜像),仍然需要单独为pnpm配置镜像源。这是因为npm和pnpm是两个独立的包管理工具,它们的配置系统和环境变量是分离的&a…

Linux管道

预备知识:进程通信进程需要某种协同,协同的前提条件是通信。有些数据是用来通知就绪的,有些是单纯的传输数据,还有一些是控制相关信息。进程具有独立性,所以通信的成本可能稍微高一点;进程间通信前提是让不…

基于Spring Boot的快递物流仓库管理系统 商品库存管理系统

🔥作者:it毕设实战小研🔥 💖简介:java、微信小程序、安卓;定制开发,远程调试 代码讲解,文档指导,ppt制作💖 精彩专栏推荐订阅:在下方专栏&#x1…

脚手架开发-Common封装基础通用工具类<基础工具类>

书接上文 java一个脚手架搭建_redission java脚手架-CSDN博客 以微服务为基础搭建一套脚手架开始前的介绍-CSDN博客 脚手架开发-准备配置-进行数据初始化-配置文件的准备-CSDN博客 脚手架开发-准备配置-配置文件的准备项目的一些中间件-CSDN博客 脚手架开发-Nacos集成-CSD…

软件系统运维常见问题

系统部署常见问题 环境配置、兼容性问题。生产与测试环境的操作系统、库版本、中间件版本不一致,运行环境软件版本不匹配。新旧版本代码/依赖不兼容。依赖缺失或冲突问题。后端包启动失败,提示类/方法/第三方依赖库找不到或者版本冲突。配置错误。系统启…

2021 IEEE【论文精读】用GAN让音频隐写术骗过AI检测器 - 对抗深度学习的音频信息隐藏

使用GAN生成音频隐写术的隐写载体 本文为个人阅读GAN音频隐写论文,部分内容注解,由于原文篇幅较长这里就不再一一粘贴,仅对原文部分内容做注解,仅供参考详情参考原文链接 原文链接:https://ieeexplore.ieee.org/abstra…

PWA技术》》渐进式Web应用 Push API 和 WebSocket 、webworker 、serviceworker

PWA # 可离线 # 高性能 # 无需安装 # 原生体验Manifest {"name": "天气助手", // 应用全名"short_name": "天气", // 短名称(主屏幕显示)"start_url": "/index.html&…

数据结构——栈和队列oj练习

225. 用队列实现栈 - 力扣(LeetCode) 这一题需要我们充分理解队列和栈的特点。 队列:队头出数据,队尾入数据。 栈:栈顶出数据和入数据。 我们可以用两个队列实现栈,在这过程中,我们总要保持其…

Java基础 8.19

目录 1.局部内部类的使用 总结 1.局部内部类的使用 说明:局部内部类是定义在外部类的局部位置,比如方法中,并且有类名可以直接访问外部类的所有成员,包含私有的不能添加访问修饰符,因为它的地位就是一个局部变量。局…

从父类到子类:C++ 继承的奇妙旅程(2)

前言:各位代码航海家,欢迎回到C继承宇宙!上回我们解锁了继承的「基础装备包」,成功驯服了public、protected和花式成员隐藏术。但——⚠️前方高能预警: 继承世界的暗流涌动远不止于此!今天我们将勇闯三大神…

【图像算法 - 16】庖丁解牛:基于YOLO12与OpenCV的车辆部件级实例分割实战(附完整代码)

庖丁解牛:基于YOLO12与OpenCV的车辆部件级实例分割实战(附完整代码) 摘要: 告别“只见整车不见细节”!本文将带您深入实战,利用YOLO12-seg训练实例分割模型,结合OpenCV的强大图像处理能力&…

ubuntu22.04配置远程桌面

文章目录前言检查桌面类型xorg远程桌面(xrdp)安装xrdpxrdp添加到ssl-certwayland远程桌面(gnome-remote-desktop)检查安装开启开启状况检查自动登录奇技淫巧前言 在windows上使用远程桌面服务,连接ubuntu主机的远程桌面 检查桌面类型 查看桌面类型、协议 echo $…

SQL Server 中子查询、临时表与 CTE 的选择与对比

在 SQL Server 的实际开发过程中,我们常常需要将复杂的查询逻辑分解为多个阶段进行处理。实现这一目标的常见手段有 子查询 (Subquery)、临时表 (Temporary Table) 和 CTE (Common Table Expression)。这三者在语法、执行效率以及可维护性方面各有优势与局限。如何选…

肖臻《区块链技术与应用》第20-22讲 - 以太坊难度调整、权益证明和智能合约

以太坊的“冰河时代”:详解难度调整算法与“难度炸弹” 摘要: 为了实现远快于比特币的十几秒出块速度,以太坊必须设计一套更为灵敏和复杂的挖矿难度调整算法。本文基于北京大学肖臻老师的公开课内容,深入剖析了以太坊独特的逐块难度调整机制。文章首先解释了其维持15秒平均…

C++中内存池(Memory Pool)详解和完整示例

1. 什么是内存池? 内存池(Memory Pool / Pool Allocator) 是一种内存管理机制,提前向系统申请一大块内存,再在这块内存里切分、分配和回收。 它相当于在用户空间建立了一层 “小型堆管理器”,避免频繁调用系…

测试 Next.js 应用:工具与策略

1. 引言 Next.js 作为一个基于 React 的全栈框架,在构建复杂 Web 应用时,测试是确保代码质量、功能稳定性和用户体验的关键步骤。测试可以分为单元测试、集成测试和端到端测试三种类型,每种类型针对不同的层面:单元测试验证单个组…

IP 分片和组装的具体过程

IP 分片和组装的具体过程 在这里插入图片描述 • 16 位标识(id): 唯一的标识主机发送的报文. 如果 IP 报文在数据链路层被分片了, 那么每一个片里面的这个 id 都是相同的. • 3 位标志字段: 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到). 第二位置为 1 表示…

数据仓库OLTPOLAP维度讲解

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:大数据、Java、测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/…

OpenHarmony之编译配置白名单机制深度解析:构建系统的安全防线

一、白名单机制概述 在OpenHarmony的构建系统中,compile_standard_whitelist.json是一个关键的安全验证机制,它作为编译过程中的"守门人",确保只有经过验证的组件和依赖关系才能被纳入最终构建产物。这个机制是OpenHarmony构建系统…