git 远程分支与本地分支
创始人
2024-03-30 20:42:40

前言

  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 分支相同。

在这里插入图片描述

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...