git命令之git fetch的用法
git命令之git fetch的用法
而理解 fetch
的关键, 是理解 FETCH_HEAD
.
这里需要解释下什么是FETCH_HEAD??
FETCH_HEAD指的是: 某个branch在服务器上的最新状态'.
执行过fetch操作的项目'都会存在一个FETCH_HEAD列表,
每一个
这个列表保存在 .Git/FETCH_HEAD
文件中, 其中每一行对应于远程服务器的一个分支
.
当前分支指向的FETCH_HEAD, 就是这个文件第一行对应的那个分支
.
一般来说, 存在两种情况:
如果没有显式的指定
远程分支
, 则远程分支的master
将作为默认的FETCH_HEAD.如果指定了
远程分支
, 就将这个远程分支作为FETCH_HEAD.
常见的git fetch 使用方式包含以下四种:
git fetch
这一步其实是执行了两个关键操作:
- 创建并更新
所有远程分支的本地远程分支
.
- 设定当前分支的FETCH_HEAD
为远程服务器的master分支
(上面说的第一种情况)
需要注意的是: 和push不同, fetch会自动获取远程`新加入'的分支.
git fetch origin
同上, 只不过手动指定了remote.
git fetch origin branch1
设定当前分支的 FETCH_HEAD' 为
远程服务器的branch1分支`.
注意: 在这种情况下, 不会在本地创建本地远程分支
, 这是因为:
这个操作是git pull origin branch1
的第一步, 而对应的pull操作,并不会在本地创建新的branch.
一个附加效果是:
这个命令可以用来测试远程主机的远程分支branch1是否存在, 如果存在, 返回0, 如果不存在, 返回128, 抛出一个异常.
git fetch origin branch1:branch2
只要明白了上面的含义, 这个就很简单了,
- 首先执行上面的fetch操作
使用远程branch1分支在本地创建branch2(但不会切换到该分支),
如果本地不存在branch2分支, 则会自动创建一个新的branch2分支,
如果本地存在branch2分支, 并且是`fast forward', 则自动合并两个分支, 否则, 会阻止以上操作.git fetch origin :branch2
等价于: git fetch origin master:branch2
git命令之git fetch的用法相关推荐
- git命令及git合并分支进行多人协作
git命令及git合并分支进行多人协作 git命令大全 git的工作区.暂存区.本地仓库和远程仓库 git常用命令 git revert 和 git reset的区别 修改默认分支 合并分支 Git分 ...
- git命令之git clone用法
2015年02月26日 13:59:11 阅读数:81047 转:http://blog.csdn.net/wangjia55/article/details/8818845 在使用git来进行版本控 ...
- git命令之git rebase 的用法
rebase 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支. $ git checkout -b mywork origin ...
- 10个你应该了解的Git命令(以及Git省时小窍门)
在本文中,我们将讨论那些作为开发人员.数据科学家或产品经理应该知道的各种各样的Git命令.并且将使用Git查看.删除和整理.此外,我们还将介绍如何使用Bash别名和Git编辑器配置转义Vim和节省时间 ...
- 【Git命令】Git常用命令速查 Git命令汇总
记录Git的一些常用指令,遗忘时方便快速查询. 符号说明: []里表示可选字段 <>里表示需要用户定义的字段 1. 基础配置 配置用户签名: # 配置用户名 git config [--g ...
- Git命令:git常用命令
Git 基本知识与常用指令 https://www.cnblogs.com/chiao/archive/2011/07/27/2117835.html 一.Git代码状态转换图 其中: 未被Git跟踪 ...
- Git 命令之Git clean
开篇点题 git clean命令用来从你的工作目录中删除所有没有tracked过的文件 git clean -n 不会删除,只是Notification,提醒 2. git clean - ...
- git命令之git tag 给当前分支打标签
git tag - 标签相关操作 发表于 2011年06月29日 由 机器猫 标签可以针对某一时间点的版本做标记,常用于版本发布. 列出标签 $ git tag # 在控制台打印出当前仓库的所有标签 ...
- git命令之git mergetool vi非正常退出.swp删除不了的问题
1.git pull命令产生无法merge的错误 使用了 git mergetool命令然后...傻逼了 进入了vi操作界面,不会操作,非正常退出... 然后就产生了.swp相关文件,死活删除不 ...
- git 命令之 git commit --no-verify -m ‘XXX‘
过往的开发中一多多少少会用一些可视化git提交工具,比如小乌龟,sourcetree,但是今天遇到了一个奇葩的问题,git的sourcetree代码提交不上去.解决方式如下 git commit -- ...
最新文章
- 2017元旦,你被闰秒吓到了吗? - 闰秒背景与数据库处理
- MFC里的GDI CDC HDC到底是什么?
- 用hyperledger cello H3C分支创建单机模式区块链系统
- 【Python】Python第三方库安装
- Java中==和equals、equals和hashCode的关系详解
- 保罗兰德作品赏析_保罗兰德——理想化的设计师人生
- DXUT实战3:HLSL(withEffect)+D3D9+DXUT(june_2010) . .
- vecm模型怎么写系数_VAR模型与向量VECM模型(7)
- php gd保存图片,PHP: GD - Manual
- 德国人预测世界杯: 冠军是西班牙!
- [C++]一个拥有音乐播放器所有基本功能的音乐库
- PAT 1010 月饼
- 构建OctoberCMS插件:Google Analytics(分析)
- python实现免费同声传译 (离线语音识别+免费翻译接口+系统声音录制)
- 67.220.92.12 /forum index.php,http://67.220.92.21/forum/inde PHP静态类
- 探索 Sa-Token (一) SpringBoot 集成 Sa-Token
- TypeScript 高级类型及用法
- 密码(Password)
- 6. 彤哥说netty系列之Java NIO核心组件之Buffer
- c语言交通违章编程代码,C语言程序设计之交通处罚单管理系统报告(内含代码)...