11.Git分支-远程跟踪分支的概念、多个远程仓库的使用
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分支-远程跟踪分支的概念、多个远程仓库的使用的更多相关文章
- git 跟踪分支 远程跟踪分支 学习笔记
远程跟踪分支相当于一个只读仓库指针,从服务器上获取数据,不可以被本地直接修改. 跟踪分支相当于一个本地指针 用于项目更新和迭代. 1跟踪分支 (tracking branch) 逻辑示意图 ...
- 开发过程中,本地分支和远程跟踪分支发生了diverge
1 git基本概念梳理 1.1 git的工作目录.暂存区和HEAD指向的版本库以及branch的概念 一个branch就是整个产品的一套代码,而工作目录中就是存放的本branch最新的代码,HEAD指 ...
- 12.Git分支-推送(push)、跟踪分支、拉取(pull)、删除远程分支
1.推送 本地的分支并不会自动与远程仓库同步,你可以显示的向远程仓库推送你的分支.例如你在本地创建了一个dev分支,你想其他的人和你一样在dev之下进行工作,可以使用 git push <rem ...
- 20.远程分支&跟踪分支
远程分支 远程引用是对远程仓库的引用(指针),包括分支.标签等等. 你可以通过 git ls-remote (remote) 来显式地获得远程引用的完整列表,或者通过 git remote show ...
- 解决 git branch -a 无法全部显示远程的分支,只显示master分支
新建分支 若遇到 git branch -a 无法全部显示远程的分支,只显示master分支 可以通过 git fetch 将本地远程跟踪分支进行更新,与远程分支保持一致
- git 远程新建分支后,本地查看不到
使用以下命令同步 git remote # 列出所有远程主机git remote update origin --prune # 更新远程主机origin 整理分支git branch -r # 列出 ...
- git小技巧之分支、关联远程仓库、回滚、解决.gitignore不生效等
1.分支管理 新建并切换分支:git checkout -b <name>新建本地分支并关联到远程分支git checkout -b myRelease origin/Release合并某 ...
- Git如何将本地test分支设置跟踪origin/test分支
前提条件: 有一个远程仓库其中只有一个master分支,然后我把它clone到本地 1.新建一个本地分支test, 2.然后把它push到远程仓库(git push origin test) 3.本地 ...
- git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支
1 查看远程分支 $ git branch -a * br-2.1.2.2 master remotes/origin/HEAD -> origin/master remotes/origin/ ...
随机推荐
- 利用js实现 禁用浏览器后退
现在很多的内部系统,一些界面,都是用户手动点击退出按钮的.但是为了避免,用户误操作 点击浏览器后退,或者用鼠标手势后退什么的.容易出现误操作. 所以在有些页面上,适当的禁用浏览器的后退, ...
- aliyun install Discourse log
apt update apt install wget wget -qO- https://get.docker.com/ | sh vim /etc/default/docker DOCKER_OP ...
- Go之十大经典排序算法
1.冒泡排序 func bubble_sort(li []int) { for i := 0; i < len(li)-1; i++ { exchange := false for j := 0 ...
- springMVC 多文件上传前后台demo
只是个demo,需要数据校验,流程是通的 配置上传文件的解析器 前端代码; <%@ page language="java" contentType="text/h ...
- sqlserver 删除表 视图 函数 存储过程
use tax_ceshiselect 'DROP TABLE '+name from sysobjects where type = 'U'union select 'DROP VIEW '+nam ...
- 打包github上的项目,并在本地使用
在GitHub上去找工具并把地址克隆下来 在本地创建一个文件夹,文件夹内右击 (建议路径为英文,并保证本机有github的软件: https://jingyan.baidu.com/article/9 ...
- Cause: java. lang.InstantiationException: tk.mybatis.mapper.provider.base.BaseInsertProvider
相信现在Java Web开发都是用的mybatis吧,而用到mybatis很多人都不会错过通用mapper吧! (纯属瞎扯淡...qwq). 如我上一篇博客所写,目前公司新项目,使用了通用mapper ...
- python3.5.2库getpass
getpass的功能是:允许隐式的输入字符串 import getpass _username='vigossr' _password='haha' username=input('username: ...
- Python数据可视化编程实战pdf
Python数据可视化编程实战(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1vAvKwCry4P4QeofW-RqZ_A 提取码:9pcd 复制这段内容后打开百度 ...
- Oracle事务与锁 知识点摘记
事务:事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功要么全部失败. 说明:一组SQL,一个逻辑工作单位,执行整体修改或者整体回退. 事务的相关概念: 1.事务的提 ...