1.远程跟踪分支的概念

  远程引用是对远程仓库的引用,包括分支、标签等等。

1.可以通过 git ls-remote <remote> 来获得远程引用的完整列表

 2.git remote show <remote> 来获取远程分支的更多相关信息。

如下图所示,运行 git remote show origin 可以得到有哪些远程分支,pull和push分别是与哪个远程仓库交互。

  远程跟踪分支:远程跟踪分支是远程分支状态的引用,它们是你不能够移动的本地引用,记录的是你上次连接到远程仓库时,远程分支所处的状态,例如:一般本地会存在一个远程跟踪分支origin/master,跟踪的是远程分支master的状态(这个master是远程分支master,不是本地分支master)。

  假设你的网络里有一个在 git.ourcompany.com 的Git服务器。 如果你从这里克隆,Git 的 clone 命令会为你自动将其命名为 origin,拉取它的所有数据,创建一个指向它的 master 分支的指针,并且在本地将其命名为 origin/master。 Git 也会给你一个与 origin 的 master分支在指向同一个地方的本地 master 分支,这样你就有工作的基础。

  如果你向远端推送了一个分支dev,那么远端会产生dev分支,在本地对应的会有一个指向远端分支的origin/dev指针,也就是远程跟踪分支。

如下图所示,远程仓库有一个分支称作为master,其在本地仓库对应着一个远程跟踪分支origin/master,同时本地还有一个称作为master的本地分支。

  当你在本地master上做了一些提交操作之后,同时其他同事提交了更新到远程分支master,这时候远程分支与本地分支的情况可能会出现如下情况:

  可以发现,远程跟踪分支origin/master并没有发生移动,本地master和远程仓库master朝着不同的方向在发展。也就是说,只要你不与远程仓库进行连接,远程跟踪分支就不会发生变化。

  现在远程仓库有了新的更新,你需要获取这些更新到你的本地仓库,可以运行

git fetch origin ,会从远程仓库抓取本地没有的数据,并且更新到本地数据库,移动远程跟踪分支origin/master指向新的、更新之后的位置。

这条命令会将远程仓库master分支上的内容拉取到远程跟踪分支origin/master下面,并不会是拉取到本地分支master下,工作区的内容不会发生改变。如下图所示:

  在抓取了远程分支的代码之后,可以将其merge进本地分支master中,使用 git merge origin/master 。

2.多个远程仓库的使用

  有时候,会存在多个远程仓库,比如有时候会存在一个远程仓库,主要用于你们内部小组的开发工作,这个远程仓库是从另一个远程仓库fork过来的。这时候,你可以运行 git remote add <remote> ,添加一个远程仓库引用到当前项目,那么你就可以运行 git fetch <remote> 来得到你新加的远程仓库的代码了。

  例子:

  你fork了一个远程仓库A到自己的GitHub账号下,名字为B,然后你将自己账号下的B仓库 clone到了本地,进行了一些提交操作,这时候,你发现原始的A有了一些更新,这时候,你可以通过git remote add A和git fetch A将原始仓库A的更新抓取到本地,然后进行merge之后,再将自己本地仓库进行的相关工作一起提交到远程仓库B,然后给远程仓库A发pull request操作来合并你所进行的开发工作到A仓库。(https://www.cnblogs.com/morethink/p/8907980.html)

  还有一种方法,可以在GItHub网站上,直接从A将所有的更新拉取到B,通过new 一个pull request就可以了。(https://www.cnblogs.com/eyunhua/p/8463200.html)

11.Git分支-远程跟踪分支的概念、多个远程仓库的使用的更多相关文章

  1. git 跟踪分支 远程跟踪分支 学习笔记

    远程跟踪分支相当于一个只读仓库指针,从服务器上获取数据,不可以被本地直接修改. 跟踪分支相当于一个本地指针   用于项目更新和迭代. 1跟踪分支  (tracking  branch)   逻辑示意图 ...

  2. 开发过程中,本地分支和远程跟踪分支发生了diverge

    1 git基本概念梳理 1.1 git的工作目录.暂存区和HEAD指向的版本库以及branch的概念 一个branch就是整个产品的一套代码,而工作目录中就是存放的本branch最新的代码,HEAD指 ...

  3. 12.Git分支-推送(push)、跟踪分支、拉取(pull)、删除远程分支

    1.推送 本地的分支并不会自动与远程仓库同步,你可以显示的向远程仓库推送你的分支.例如你在本地创建了一个dev分支,你想其他的人和你一样在dev之下进行工作,可以使用 git push <rem ...

  4. 20.远程分支&跟踪分支

    远程分支 远程引用是对远程仓库的引用(指针),包括分支.标签等等. 你可以通过 git ls-remote (remote) 来显式地获得远程引用的完整列表,或者通过 git remote show ...

  5. 解决 git branch -a 无法全部显示远程的分支,只显示master分支

    新建分支 若遇到 git branch -a 无法全部显示远程的分支,只显示master分支 可以通过 git fetch 将本地远程跟踪分支进行更新,与远程分支保持一致

  6. git 远程新建分支后,本地查看不到

    使用以下命令同步 git remote # 列出所有远程主机git remote update origin --prune # 更新远程主机origin 整理分支git branch -r # 列出 ...

  7. git小技巧之分支、关联远程仓库、回滚、解决.gitignore不生效等

    1.分支管理 新建并切换分支:git checkout -b <name>新建本地分支并关联到远程分支git checkout -b myRelease origin/Release合并某 ...

  8. Git如何将本地test分支设置跟踪origin/test分支

    前提条件: 有一个远程仓库其中只有一个master分支,然后我把它clone到本地 1.新建一个本地分支test, 2.然后把它push到远程仓库(git push origin test) 3.本地 ...

  9. git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支

    1 查看远程分支 $ git branch -a * br-2.1.2.2 master remotes/origin/HEAD -> origin/master remotes/origin/ ...

随机推荐

  1. haproxy代理配置段参数设定

    代理配置段:有四个配置段 default:设定默认参数, frontenf:前端服务器的设定 backend:后端服务器的设定 listening:是设定前端和后端一一对应的设定 参数: 1bind: ...

  2. 022 Jquery总结

    1.大纲 jQuery 库中的 $() 是什么? 网页上有 5 个div元素,如何使用 jQuery来选择它们? jQuery 里的 ID 选择器和 class 选择器有何不同? 如何在点击一个按钮时 ...

  3. 蓝桥杯 穿越雷区(bfs)

    题目描述 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废.某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短? ...

  4. JWT 超详细分析

    请参考以下链接 https://learnku.com/articles/17883

  5. 简单的dfs题 --- POJ1321 棋盘问题

    题目链接: http://poj.org/problem?id=1321 题目大意: 你有k个棋子,若干个可以填的位置,要求填下一个棋子后其行和列不能填棋子. 思路: dfs策略 画图理解更好些: 填 ...

  6. MyBatis3系列__Demo地址

    一直光写博客了,并且感觉贴代码有点麻烦,但是以后的博客也尽量说的清楚,此外,觉得贴一下demo会好一些: 当然了,需要能够FQ哈,如果不能FQ的话建议百度或者参考这个:https://secure.s ...

  7. CoreException: Could not get the value for parameter compilerId for plugin execution default-compile: PluginResolutionException: Plugin org.apache.maven.plugins:maven-compiler-plugin:3.1

    今天遇到一个奇怪的问题, 之前写好的代码, 更换环境后, 重新搭建的nexus, maven私服总是报错, 各种clean/update都不管用 原来是没写版本号, 后来加上3.1版本, 还是报错, ...

  8. python练习题目

    1.查看本机安装python版本 2.用python打印"Hello World",给出源代码和执行结果 a.命令行窗口输出(前提:python程序加入PATH系统环境变量) b. ...

  9. 推荐一些iOS博客

    公司性质的: 公司 地址 美团 http://tech.meituan.com/archives 个人博客: 博主 地址 (斜体的技术文章较少) 王巍(onevcat) https://onevcat ...

  10. JPG、PNG、GIF、SVG 等格式图片区别

    1.图片 2. 前言 首先,我们要清楚的是,图片从类型上分,可以分为 位图 和 矢量图. 位图:位图又叫点阵图或像素图,计算机屏幕上的图是由屏幕上的发光点(即像素)构成的,每个点用二进制数据来描述其颜 ...