Git / git clone 、git pull 和 git fetch
一、git clone
Git 的 clone 命令的工作如下:
1、自动将远程主机命名为 origin,拉取它的所有数据。
2、创建一个指向它的 master 分支的指针,并且在本地将其命名为 origin/master。
3、创建一个与 origin 的 master 分支在指向同一个地方的本地 master 分支。
二、git fetch
1、本地有提交,远程也有别人的推送
远程库有人推送,提交了 C0 和 C1:
本地提交了 D0 和 D1:
只要你不与 origin 服务器连接,你的 origin/master 指针就不会移动。
2、同步
如果要同步远程库到你的工作,运行 git fetch origin 命令。
$ git fetch origin
这个命令功能:
(1)查找 “origin” 是哪一个服务器,从中抓取本地没有的数据;
(2)更新本地数据库,移动 origin/master 指针指向新的、更新后的位置。
要特别注意的一点是 fetch 抓取到新的远程跟踪分支时,本地的工作区(workspace)不会自动生成一份可编辑的副本,抓取结果是直接送到版本库(Repository)中。如下图:
打个比方,在远程库 origin 新建了一个分支 dev,git fetch 后本地不会生成一个新的分支 dev(可用 git branch 查看),只有一个不可以修改的 origin/dev 指针。
3、在 origin/master 后继续工作
如果想要在 origin/master 分支上工作,可以新建分支 test 并将其建立在远程跟踪分支之上:
$ git checkout -b test(本地分支) origin/master(远程分支)
这会给你新建一个用于工作的本地分支 test,并且起点位于 origin/master。
4、合并
如果想把拉取的结果合并到本地分支,需要手动合并。使用如下命令:
$ git chekout master
$ git merge origin/master
然而,看到上面的合并结果会想到命令 git pull 。在大多数情况下它的含义是一个 git fetch 紧接着一个 git merge 命令。即 git pull 是 git fetch 和 git merge 的两步的和。
但是由于 git pull 的使用经常令人困惑,所以通常单独显式地使用 fetch 与 merge 命令会更好一些。
(SAW:Game Over!)
Git / git clone 、git pull 和 git fetch相关推荐
- git fork clone 区别_Working with Git | Git 与 GitHub
关于 各位好,这里是 China's Prices Project 项目的知乎专栏.关于 CPP 项目,您可以在这篇文章里了解到更多的信息.若您对这个项目感兴趣,我们非常欢迎您与我们交流您的想法与见解 ...
- error: could not find git for clone of XXX
error: could not find git for clone of XXX 安装git sudo apt-get install git
- 使用git命令导出项目_【git学习】SVN项目迁移到Git操作指南
参考链接 在迁移的过程中,参考了以下的链接: 第一步.建立SVN用户到git用户的映射文件在 Subversion,每个提交者在都在主机上有一个用户名,记录在提交信息中.如果想让已有的信息更好的映射到 ...
- 彻底理解git 本地分支与远程分支,以及git pull与git fetch的区别, 以及git status输出的“Your branch is behind xxx”
git 本地分支: 当clone一个远程repo之后,默认会新建一个master或main的本地分支. 比如: $ git branch -a * mainremotes/origin/HEAD -& ...
- 详解git pull和git fetch的区别:
前言 在我们使用git的时候用的更新代码是git fetch,git pull这两条指令.但是有没有小伙伴去思考过这两者的区别呢?有经验的人总是说最好用git fetch+git merge,不建议用 ...
- 玩转GIT系列之【git pull和git fetch的区别】
大家都知道,git中从远程的分支获取最新的版本到本地有2个命令,git pull和git fetch.但是,这两个命令究竟有什么区别?使用时候该怎么选择呢?很多人不是很清楚,我自己也不是很清楚.今天就 ...
- fetch git pull 切换_git fetch git pull
解析.git文件夹 进入正题之前,我们先来看看.git文件夹 1.config配置文件 [core] repositoryformatversion = 0 filemode = true bare ...
- 解决:YOLOv5 is out of date by 16 commits. Use ‘git pull‘ or ‘git clone
当出现: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with o ...
- git fork clone 区别_我的Git笔记
每次用到git,总会遇到一些问题,所以写这篇文章记录一下. fork 等fork完之后,你可以在自己的仓库中看到同名的项目,URL的形式:https://github.com/your_name/re ...
最新文章
- 导出到Excel的操作
- 树 - 定义和基本概念
- 创建支持nginx服务的docker镜像
- curl循环监控_阿里巴巴开源性能监控神器Arthas
- android模拟器太卡,安卓模拟器安装之后太卡怎么解决
- OpenShift 4 之 Hello-OpenShift
- Linux中配置网桥
- ObjC学习7-C语言特性
- .Net与 WebAssembly 随笔
- tomcat 404错误 原因_软件测试人员定位bug原因的10大妙招分享
- C语言 二进制文件读写实例讲解
- 泛娱乐出海走出水土不服,元宇宙社交诞生新机会!
- 为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?
- UI设计初学者必入门必看!
- 服务器中内存不够的原因
- Mybatis 报The error occurred while handling results
- 优质的服务+智能+完美的线路=AI智能语音机器人
- 使用simulink进行stm32开发1
- 代码的“门面”——模式系列谈之Facade模式
- Linux find 实战