Git 学习日记--远程跟踪分支

时间:2024-05-18 20:41:34

Git 学习日记–远程跟踪分支

参考教程:https://oschina.gitee.io/learn-git-branching/


背景

默认情况下,远程分支master本地master分支是相互关联的,主要体现在两个方面:

  • pull操作时,提交记录会被先下载到origin/master,之后再合并到本地master分支。隐含的合并目标由这个关联所确定。
  • push操作时,我们把工作从master推到远程仓库的master分支(同时会更新远程分支origin/master)。这个推送的目的地也是由这种关联确定的。

实质

本质上,masterorigin/master的关联联系是由分支的“remote tracking”属性决定的。master被设定为跟踪origin/master–意味着:master分支指定了推送的目的地址以及拉取后合并的目标

克隆远程仓库的时候,Git 就自动帮助我们把这个属性设置好了,当我们克隆时,Git 会为远程仓库的每个分支在本地仓库中创建一个远程分支(比如origin/master)。然后再创建一个跟踪远程仓库中活动分支的本地分支,默认情况下这个本地分支会被命名为master。克隆完成后,会得到一个本地分支(如果没有这个本地分支的话,本地目录就是“空白”的),但是可以查看远程仓库中的所有分支。

更改属性

我们可以任意分支跟踪origin/master,然后该分支会像master分支一样得到隐含的push目的地以及merge目标。这样一来,这个分支可以直接执行git push | git fetch等手段推送/拉取远程仓库的master分支。

设置跟踪远程分支有两种方法

  • 方法
    1. 通过远程分支检出一个新的分支:
      git checkout -b xxx(分支名) origin/master
    2. 利用git branch -u 命令:
      git branch -u origin/master xxx(分支名),如果就在该分支上,分支名可以省略

例子

初始状态:

Git 学习日记--远程跟踪分支

目标:

Git 学习日记--远程跟踪分支
步骤:

  1. 创建分支side,并提交一次

    git checkout -b side

    git commit

Git 学习日记--远程跟踪分支

  1. 跟踪远程分支:

    git branch -u o/master side

  2. 拉取并合并远程分支内容:

    git pull --rebase o/master

Git 学习日记--远程跟踪分支

  1. 将本地分支的最新修改推送至远程分支:

    git push

Git 学习日记--远程跟踪分支