git 远程分支与本地分支

2023-05-16

前言

  1. 远程仓库上只有 1 个 master 分支。
    在这里插入图片描述
  2. 复制远程仓库的地址。

在这里插入图片描述
3. 克隆远程仓库到本地。

在这里插入图片描述

一、

  • 注意:本地的 head 和 master 文件都存在,但是 remote 的 master 信息是保存在文件 .git/packed-refs 中。

在这里插入图片描述

  • 可以看到,当前 HEAD 指针指向本地仓库的 master 分支。同时远程仓库的 mater 分支的最新 commit 和本地仓库 master 分支的 commit 一样。
  • 但是注意:origin/master, origin/HEAD 指向的 commit ,只是我们执行 git clone那一刻,远程仓库上 master 分支指向的 commit。本地仓库保存的origin/master, origin/HEAD 可能已经和远程仓库的 master 分支 commit 不一样了。

在这里插入图片描述

  • git-fetch - Download objects and refs from another repository.
  • fetch 命令用于 从本地仓库保存的远程分支 origin/master ,更新远程仓库的最新 commit 信息到本地,或者更新远程仓库的其他分支信息(如新创建的 dev 分支)到本地。

在这里插入图片描述

  • 实际上, git branchgit remote 命令显示的都是保存在了本地仓库的信息,并不是实时从远程仓库获取最新信息。

List item

  • 那么我们必须知道远程仓库的最新信息,才能决定是否需要执行 git fetch 从远程仓库拉取:最新的 commit 提交,或者最新的 dev 分支信息
  • git remote show origin 命令通过连接网络,去获取本地分支与远程分支的关联情况。

在这里插入图片描述


二、演示远程仓库的更新

1. 远程仓库执行了新的 commit

  • 当前本地仓库保存的远程分支 master 和本地分支的 master 是相同的。

在这里插入图片描述

  • 模拟在远程分支上进行新的提交 commit。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 远程分支上提交了新的 commit,但是本地分支保存的 remote/origin 信息并不会主动更新。

在这里插入图片描述

  • 执行 fetch 从远程分支拉取最新信息到本地分支。
  • fetch 拉取的信息主要是:1).git/objects/ 目录下远程分支的 git obj 对象;2).git/refs/ 目录下远程分支的 origin 目录文件。

在这里插入图片描述

  • 注意:packed-refs 是在 git clone 时将压缩信息保存在其中的,只是 clone 时刻远程分支上的信息。
  • fetch 之后,.git/refs/remotes/origin/master 才是实时反映远程分支的信息。

在这里插入图片描述


2. 远程仓库创建了新的分支 dev

  • 首先在远程仓库创建新的分支 dev 。

在这里插入图片描述

  • 当前本地分支是看不到远程分支的任何最新修改的。

在这里插入图片描述

  • 通过命令git remote show origin,可以联网发现远程分支的最新修改。

在这里插入图片描述

  • 使用 git fetch 后,本地仓库就能跟踪到远程仓库的 dev 分支。

在这里插入图片描述
在这里插入图片描述


3. 远程仓库删除了 dev 分支

在这里插入图片描述

在这里插入图片描述

  • 注意:git fetch 并不能在本地仓库删除 对应远程仓库分支的删除。

在这里插入图片描述

  • 使用命令 git fetch --prune 就可以删除本地仓库上,远程仓库已经不在了的分支。

在这里插入图片描述
在这里插入图片描述


4. 注意区分本地仓库的 dev 分支与远程仓库的 dev 分支

  • git branch -vv 命令可以显示分支上游分支的关系(如果有)。

在这里插入图片描述

  • 如下图,我们在本地仓库创建 dev 分支,可以看到该 dev 分支与远程仓库没有任何联系。
  • 而本地仓库的 master 分支与远程仓库的 master 分支(origin/master)是有关联的。

List item


5. 远程分支的 merge

  • 注意,git fetch 只是将远程仓库的分支内容更新到本地仓库的 origin/master 分支上面。
  • 即,git fetch 只是更新了本地仓库的 remotes/origin/master 内容,并没有更新本地仓库的 master 内容。它们是两个不同的分支。
  • 所以,如果要将 remotes/origin/master 内容 更新到本地仓库的 master ,需要使用 merge 合并。

在这里插入图片描述

  • 我们已经通过 git fetch 将远程仓库的 master 分支同步到本地仓库的 origin/master 分支了。
  • 此时远程仓库的 master 分支与本地仓库的 origin/master 分支 相同。
  • 但是 本地仓库的 master 分支,还需要合入 本地仓库的 origin/master 分支的内容。
  • 此时,本地仓库的 master 分支,滞后于 本地仓库的 origin/master 分支。

在这里插入图片描述

  • 我们通过 merge 操作,将 本地仓库的 origin/master 分支内容, 合并到本地仓库的 master 分支。
  • 之后通过命令 git branch -vv,可以看到,本地仓库的 master 分支,和本地仓库的 origin/master 分支相同。

在这里插入图片描述

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

git 远程分支与本地分支 的相关文章

  • Git worktree prune - 它有什么作用?

    我在用着git 版本 2 14 2 windows 2并调用 git worktree add
  • 如何从现有存储库中的分支创建新的 GitHub 存储库?

    I have master and 新项目分支机构 现在我想创建一个全新的存储库及其基于新项目分支的主存储库 背景 我有一个存储库 其中包含三个独立的应用程序 事情并不是这样开始的 仓库中最初只有一个应用程序 然而 随着时间的推移 业务需求
  • Git:repo 包含一个空目录 - 会发生什么?

    Git 跟踪文件 而不是目录 https stackoverflow com questions 5091017 和我们目前不能add空目录 https stackoverflow com questions 11600188 The 标准
  • 如何使用 vim 作为寻呼机设置彩色 git diff

    我无法配置 git 来遵循我的请求 使用 vim 作为差异分页器 在交互模式下添加文件时保留差异颜色 My gitconfig setup color ui auto diff false pager diff vim 通过此配置 交互模式
  • 如何使用和理解wso2 git仓库?

    我刚刚开始对wso2感兴趣 我正在寻找移动设备管理解决方案 所以我测试了 wso2 EMM 但我发现了一些限制 我想知道是否可以自己实现 我的问题是我完全迷失在 wso2 git 存储库中 有没有我错过的指导书或逻辑 如果有人帮助我解决这个
  • git 查找胖提交

    是否可以获取有关每次提交中的更改浪费了多少空间的信息 以便我可以找到添加了大文件或大量文件的提交 这一切都是为了尝试减少 git repo 的大小 变基并可能过滤提交 你可以这样做 git ls tree r t l full name H
  • GIT:无效路径“.editorconfig”

    从 master 克隆项目时出现以下错误 错误 无效路径 editorconfig 致命 无法签出工作树 警告 克隆成功 但结账失败 您可以使用 git status 检查签出的内容 并使用 git Restore source HEAD
  • egit:设置gitignore忽略所有eclipse项目文件

    我在 github 上有一个项目 我想从中删除所有与 eclipse 相关的文件 并允许克隆它的人使用他们想要的任何 ide 这是该项目 https github com vedi0boy Archipelo https github co
  • Gitolite 与 LDAP 不工作

    我是 gitolite 的新手 我正在尝试用 gitolite 进行一个非常简单的测试 我已经设置了名为 test repo 的存储库 请注意 除了下面所述之外 我没有修改任何其他内容 我可以在 gitweb 中看到这个仓库 这是仓库配置
  • Git 会删除空文件夹吗? [复制]

    这个问题在这里已经有答案了 我已提交一个项目并将其推送到我的 GitHub 帐户 该项目包含以下部分文件结构 server conf some files java lib java 和 lib 文件夹为空 从 GitHub 下载我的项目时
  • 目标路径已存在且不是空目录

    我克隆了一个 git 存储库 但不小心弄乱了 所以我重新克隆并显示消息 目标路径已存在且不是空目录 我尝试过删除 Mac 中带有目标路径名称的文件夹 但没有成功 我对编码非常陌生 因此我们将不胜感激 对于根文件夹 以及任何其他文件夹 对于那
  • 为什么 git 无法识别我的本地存储库?

    我刚刚回到一个我已经使用 Git 大约 6 个月的项目 看到了这个 cd d DEVELOP BlenderAe My repo root git status fatal not a git repository or any of th
  • VS2013 - GIT 不工作

    我最近安装了VS2013 每当我尝试使用 GIT 执行任何操作时 我都会在输出窗口中收到以下两条消息 libgit2 引发错误 类别 未知 错误 本机库未提供错误消息 该问题可能主要出现在远程存储库获取中 在克隆远程存储库之前 请打开远程
  • “git merge --squash”的正确用例是什么?

    有些人喜欢git merge squash由于以下原因 压缩到单个提交使您有机会清理混乱的 WIP 提交 并为您要合并的更改提供良好的理由 https coderwall com p qkrmjq git merge squash http
  • 如何将 git-svn 与 svn+ssh url 一起使用

    我喜欢在cygwin中使用git svn clone使用我们公司 svn 存储库的命令 这个的网址是svn ssh svn
  • 仅将单个文件放入 git 子模块/存储库中

    我在 git 源代码存储库中有一个特定文件 其中包含生产设置 密码 我想限制此文件 以便只有制作团队的成员才能看到它 但是 我想控制它的变化 我考虑过在 git 中使用子模块 然后限制对新存储库的访问 然而 git 似乎需要子模块的整个子目
  • 返回到 Github Desktop 中的上一个提交

    我正在尝试使用 GitHub Desktop 即 GUI 应用程序 而不是命令行 返回到先前的提交 在同一分支上 我认为这是一个核心功能 因为它是首先使用源代码控制的主要原因 我可以看到可以恢复提交 但这并不是我真正想要的 因为它创建了一个
  • git filter-repo:它可以在特定分支上使用吗?

    我正在读什么git filter repo可以做 因为我想用它做一个小实验 我有这个存储库 我只想从中获取一个目录的历史记录 比如说 master 但我不想为主人工作 我想创建一个新分支 例如filter repo test然后让git f
  • 我可以获取两次提交之间 git 子文件夹中已更改文件的列表吗?

    我有一个包含许多文件夹的 git 存储库 我需要找出在两次提交之间这些文件夹之一中的哪些文件发生了更改 有没有一个好的方法来做到这一点 我想你可以坚持走最后的路git diff git diff HEAD HEAD special fold
  • 运行 flutter doctor 吐出错误:标准错误:致命:坏对象 HEAD

    我已经从官方网站安装了 Flutter 和 Android Studio 我是 Git GitHub 移动开发和 Android 开发的新手 我试图在命令提示符 Windows 10 中运行 flutter doctor 命令 但是 它会以

随机推荐

  • SLAM因子图构建笔记

    因子图简介 最近在读了Joan Sola所写的Course on SLAM中有关因子图部分的介绍后 xff0c 发现其中有关于因子图构建的思路觉得很有意思 xff0c 因此在这里记录一下 DBN网络 首先简单地介绍一下如何将一个SLAM问题
  • xmanager关闭linux命令,Linux下xmanager passive功能无法使用的解决技巧

    xmanager Passive可以在仅登陆ssh字符界面的情况下传输图形 xff0c 为很多开发者所喜爱 有一用户因需要调整了防火墙 xff0c xmanger passive功能便无法正常使用了 xff0c 我们该如何处理这个问题呢 到
  • liteos内核驱动和linux,移植RTOS必备基础知识

    1 基础知识 移植内核对技术的要求比较高 比较细 1 1 单片机相关的知识 栈的作用 加载地址 链接地址 重定位 几个简单的硬件知识 串口 定时器 中断的概念 1 2 Linux操作相关的知识 Linux常用命令 简单的脚本 xff1a 脚
  • matlab subs什么意思,什么是matlab subs函数?

    matlab中subs 是符号计算函数 xff0c 详细用法可以在Matlab的Command Windows输入 xff1a help subs subs 函数表示将符号表达式中的某些符号变量替换为指定的新的变量 xff0c 常用调用方式
  • 虚拟机linux装无线网卡驱动,linux无线网卡驱动安装

    环境 在笔记本里的虚拟机10 0版本 xff0c centos 6 5 无线网卡fast fw300um 第一步要查看芯片 lsusb 当你得到芯片之后接下来查看内核 xff0c 如果内核已经有芯片模块就不用再装了 xff0c 如果不支持的
  • 使用Altium Designer 20绘制双层板以及四层板

    直接入正题 1 按照正常的绘制双层板的方式新建工程文件 xff0c 加入原理图和PCB文件 xff08 如果会绘制双层板请直接看第二步 xff09 xff08 1 xff09 新建工程文件 xff08 2 xff09 选择工程类型 xff0
  • 1.1 Ubuntu18.04 ROS tcp/ip Server通信实现

    Ubuntu18 04 ROS tcp ip Server通信实现 此小节介绍tcp ip Server收发数据 xff0c 并将截取到底信息通过话题方式发布出去 下一节介绍Ubuntu18 04 ROS tcp ip client通信实现
  • 1.2 Ubuntu18.04 ROS tcp/ip Client通信实现

    Ubuntu18 04 ROS tcp ip Client通信实现 此小节介绍tcp ip Client收发数据 xff0c 测试平台为为Ubuntu18 04 与Windows系统上的网络调试助手进行通信测试 xff0c 调试助手采用的有
  • 使用Gazebo对PX4飞控进行SITL仿真

    在仿真之前 xff0c 首先需要搞清楚每个模块所代表的含义 xff0c 在这个操作中扮演什么角色 Gazebo xff1a 可以理解成对我们实际飞行物理环境的一个仿真 QGC xff1a 地面站 xff0c 不用多说 Firmware xf
  • GitLab统计代码量

    gitlab官方文档 xff1a https docs gitlab com ee api index html 1 生成密钥 登录gitlab xff0c 编辑个人资料 xff0c 设置访问令牌 2 获取当前用户所有可见的项目 接口地址
  • 【树莓派】(2)网络连接、IP设置、屏幕大小设置、VNC安装与配置

    目录 1 网络连接 1 1有线网连接 SSH协议 1 2 无线网连接 VNC 方法1 xff1a 不能联网 方法2 xff1a 能联网 2 VNC安装与配置 3 IP WiFi配置 4 屏幕大小 屏幕黑屏时间设置 1 网络连接 分为有屏幕和
  • Linux服务配置 配置VNC远程桌面

    一 VNC简介 VNC Virtual Network Console 是虚拟网络控制台的缩写 它 是一款优秀的远程控制工具软件 xff0c 由著名的 AT amp T 的欧洲研究实验室开发的 VNC 是在基于 UNIX 和 Linux 操
  • 异常检测 and 自编码器(2)

    文章目录 前言一 自编码器用于异常检测的网址推荐1 自编码器AutoEncoder解决异常检测问题2 基于自编码器的时间序列异常检测算法3 深度学习实现自编码器Autoencoder神经网络异常检测心电图ECG时间序列 总结 前言 上篇文章
  • python树莓派3控制蜂鸣器_树莓派3 modelB型 连接HC-SR501人体红外感应模块和蜂鸣器模块...

    连接前准备 树莓派3 modelB型一个 HC SR501传感器一只 低电平蜂鸣器模块 有源 即接上电就会响 xff0c 低电平触发 母对母杜邦线三根 实物图如下 xff1a 博主连接的不是特别美观 两个传感器的连接图分别如下 HC SR5
  • git submodule 使用教程

    1 submoude 介绍 xff08 1 xff09 项目很大参与开发人员多的时候 xff0c 需要将各个模块文件进行抽离单独管理 xff08 2 xff09 使用git submodule来对项目文件做成模块抽离 xff0c 抽离出来的
  • 为什么笔记本电脑电源适配器基本是19V供电

    为什笔记本电源适配器供电一般不是20V xff0c 不是25V xff0c 偏偏是19V呢 xff0c 我们从硬件角度聊聊这个问题 首先一个大背景是 xff0c 笔记本电池基本都是锂电池为主 xff0c 在设计上 xff0c 一般会使用多枚
  • 基于国产飞腾、Intel X86等CPU主板设计与调试入门指导

    知识就像货币 xff0c 流动才有意义 一 前言 因为我是做硬件的 xff0c 想用这样一篇文章介绍一下我们常见的电脑主板 xff0c 或者说电路板卡 xff0c 是怎么设计出来的 仅以技术之所学 xff0c 得此文章 xff0c 若有表达
  • 两台电脑直接使用一根网线传输文件

    教程 目录 xff1a https blog csdn net dkbnull article details 87933584 有时候我们需要在两台电脑之间传输几十G的大文件 xff0c 或者置换新电脑时复制文件到新电脑 xff0c 而我
  • keil5(ARM)的下载和安装教程

    Keil 5的下载与安装 下载和安装教程均在以下百度网盘链接中 链接 xff1a 百度网盘 请输入提取码 https pan baidu com s 11N8EwQRBT 5AzXmW7y1X6A 提取码 xff1a efv3
  • git 远程分支与本地分支

    前言 远程仓库上只有 1 个 master 分支 复制远程仓库的地址 3 克隆远程仓库到本地 一 注意 xff1a 本地的 head 和 master 文件都存在 xff0c 但是 remote 的 master 信息是保存在文件 git