git的跟踪分支和远程跟踪分支学习笔记

概念区分

  • 分支(branch):是指向某个commit对象的引用
  • 跟踪分支(tracking branch):本地的分支,比如master分支,用户可写
  • 远程跟踪分支(remote tracking branch):远程的分支origin/master, 用户只读

通过git clone操作来了解仓库同步的过程

  • 克隆前【远程仓库】的状态:远程仓库master分支指向c2的commit
    这里写图片描述

  • 将数据克隆到本地之后:

    • 首先会生成一个origin/master的引用指向最新的提交c2,这个orgin/master 就是远程跟踪分支,用户只读。
      这里写图片描述
    • 然后根据origin/master 生成一个master分支指向同一个提交c2, 如下:
      这里写图片描述

通过git push操作来了解仓库同步的过程

  • 项目克隆之后,修改本地文件并提交,此时master分支的head处于c3的位置【git push前的一个状态】
    这里写图片描述

  • 通过git push 命令会对远程和本地都作出修改

    • 修改远程的master指向至c3,如下图所示:
      这里写图片描述
    • 修改本地的origin/master分支指向c3,如下图所示
      这里写图片描述

关于checkout 的操作

  • 通过 git checkout master 会把分支切换到master分支上
  • 而当 git checkout origin/master 时,这个操作会处于‘detached Head’ 状态,在这种状态下不会修改origin/master上的数据,可以修改并提交做一些实验性的操作,但是切换回master分支后,再次从master切换回origin/master时,之前的改变不会同步,因为origin/master 是用户只读的

通过git fetch origin获取数据

  • 在fetch之前,远程处于c4,本地处于c3
    这里写图片描述

  • fetch之后,本地的origin/master分支指向了最新的c4
    这里写图片描述

  • 对比修改的地方:git diff master origin/master

通过git merge origin/master合并本地分支

  • 备注:可以merge的前提是在无冲突的状态下,有冲突要手动解决
  • merge之后,master分支指向c4, 如下图:
    这里写图片描述

通过git pull获取同步最新数据

  • 备注:前提是没有冲突,有冲突手动解决
  • git pull 之前的状态:远程在c4, 本地在c3
    这里写图片描述
  • git pull 之后的状态:本地仓库更新了origin/master,将其指向c4; 然后更新master分支, 将其指向c4
    这里写图片描述
  • git pull = git fetch + git merge
  • git pull –rebase = git fetch + git rebase

更新版本建议的操作

  • git fetch + git merge
  • git fetch + git rebase
  • git pull –rebase
  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
Git本地分支是在本地仓库中创建的指向特定提交的指针。你可以使用`git branch`命令创建一个新的本地分支,例如`git branch feature1`。使用`git checkout`命令可以切换到一个已存在的本地分支,例如`git checkout feature1`。你也可以使用`git checkout -b`命令创建并切换到一个新的本地分支,例如`git checkout -b feature1`。一旦你在本地分支上进行了修改,你可以使用`git push`命令将本地分支推送到远程仓库,例如`git push origin feature1`。 远程分支是位于远程仓库中的分支远程跟踪分支是本地对远程分支的引用,它们是本地仓库中的指针,用于跟踪和反映远程分支的状态。远程跟踪分支的命名形式为`origin/branchName`。当进行网络通信时,Git会自动更新远程跟踪分支以反映远程分支的最新状态。你可以使用`git push`命令将本地分支的提交推送到远程分支,例如`git push origin master`。 当你在本地分支上进行了修改并将其合并后,你可以使用`git branch -d`命令删除本地分支,例如`git branch -d feature1`。如果你删除的分支尚未合并到其他分支,则可以使用`git branch -D`命令强制删除分支。你也可以使用`git push`命令删除远程分支,例如`git push origin :feature1`。 总结起来,Git本地分支是在本地仓库中创建和修改的指向特定提交的指针,而远程分支是位于远程仓库中的分支远程跟踪分支是本地对远程分支的引用。你可以使用不同的命令来创建、切换、推送、合并和删除本地分支远程分支。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [git学习之本地分支远程分支](https://blog.csdn.net/nnuan/article/details/108037097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值