广告位联系
返回顶部
分享到

git fetch和git pull的区别介绍

相关技巧 来源:互联网 作者:佚名 发布时间:2023-01-21 16:59:11 人浏览
摘要

简单概括两者的概念 git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。 而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git

简单概括两者的概念

git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

1.两者相同点

先在作用上他们的功能是大致相同的,都是起到了更新代码的作用。

2.不同点

首先我们要说简单说git的运行机制。git分为本地仓库和远程仓库,我们一般情况都是写完代码,commit到本地仓库(生成本地仓的commit ID,代表当前提交代码的版本号),然后push到远程仓库(记录这个版本号),这个流程大家都熟悉。
我们本地的git文件夹里面对应也存储了git本地仓库master分支的commit ID 和 跟踪的远程分支orign/master的commit ID(可以有多个远程仓库)。那什么是跟踪的远程分支呢,打开git文件夹可以看到如下文件:

.git/refs/head/[本地分支]
.git/refs/remotes/[正在跟踪的分支]

其中head就是本地分支,remotes是跟踪的远程分支,这个类型的分支在某种类型上是十分相似的,他们都是表示提交的SHA1校验和(就是commitID)。但是,不管他们是如何的相似,他们还是有一个重大的区别:更改远端跟踪分支只能用git fetch,或者是git push后作为副产品(side-effect)来改变。我们无法直接对远程跟踪分支操作,我们必须先切回本地分支然后创建一个新的commit提交。

拉取不同
1、Git fetch:Git fetch会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作。
2、git pull:git pull是从远程获取最新版本并merge到本地,会自动合并或修改当前的工作。
commitID不同

1、Git fetch:使用Git fetch更新代码,本地的库中master的commitID不变,还是等于1。
2、git pull:使用git pull更新代码,本地的库中master的commitID发生改变,变成了2。
分支(branch)的基本操作

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

git branch //查看本地所有分支

 

git branch -r //查看远程所有分支

 

git branch -a //查看本地和远程的所有分支

 

git branch <branchname> //新建分支

 

git branch -d <branchname> //删除本地分支

 

git branch -d -r <branchname> //删除远程分支,删除后还需推送到服务器

git push origin:<branchname>  //删除后推送至服务器

 

git branch -m <oldbranch> <newbranch> //重命名本地分支

/**

*重命名远程分支:

*1、删除远程待修改分支

*2、push本地新分支到远程服务器

*/

 

//git中一些选项解释:

 

-d

--delete:删除

 

-D

--delete --force的快捷键

 

-f

--force:强制

 

-m

--move:移动或重命名

 

-M

--move --force的快捷键

 

-r

--remote:远程

 

-a

--all:所有

3.git fetch用法

git fetch 命令:

1

$ git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地

如果只想取回特定分支的更新,可以指定分支名:

1

$ git fetch <远程主机名> <分支名> //注意之间有空格

最常见的命令如取回origin 主机的master 分支:

1

$ git fetch origin master

取回更新后,会返回一个FETCH_HEAD ,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:

1

$ git log -p FETCH_HEAD

在这里插入图片描述

可以看到返回的信息包括更新的文件名,更新的作者和时间,以及更新的代码(19行红色[删除]和绿色[新增]部分)。

我们可以通过这些信息来判断是否产生冲突,以确定是否将更新merge到当前分支。

4.git pull 用法

前面提到,git pull 的过程可以理解为

1

2

git fetch origin master //从远程主机的master分支拉取最新内容

git merge FETCH_HEAD    //将拉取下来的最新内容合并到当前所在的分支中

即将远程主机的某个分支的更新取回,并与本地指定的分支合并,完整格式可表示为:

1

$ git pull <远程主机名> <远程分支名>:<本地分支名>

如果远程分支是与当前分支合并,则冒号后面的部分可以省略:

1

$ git pull origin next

5.拉取远程分支

1

2

3

git fetch  //代码拉取到本地之后

git branch //查看分支

git checkout 远程分支的分支名

参考文章
https://blog.csdn.net/qq_36113598/article/details/78906882

https://blog.csdn.net/weixin_41975655/article/details/82887273


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/weixin_42343307/article/details/121239170
相关文章
  • git push命令的大全介绍
    git push命令 以上列举的参考文献将的非常棒,是目前我见到的写的最完整的。 git push命令用于将本地分支的更新,推送到远程主机。它的格
  • git fetch和git pull的区别介绍

    git fetch和git pull的区别介绍
    简单概括两者的概念 git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。 而git pull 则是将远程主
  • 秒杀系统设计的5个要点介绍
    秒杀系统涉及到的知识点 高并发,cache,锁机制 基于缓存架构redis,Memcached的先进先出队列。 稍微大一点的秒杀,肯定是分布式的集群的,并
  • IDM 6.40.11.2 弹窗的完美解决思路

    IDM 6.40.11.2 弹窗的完美解决思路
    IDM 6.40.11.2 弹窗的解决思路 前言 在IDM官方下载了IDM的30天试用版。 装好后,找了一个和谐工具。运行和谐工具后,看IDM关于那里,已经是全
  • ChatGPT会成为下一代搜索引擎之王吗?seo在哪里?

    ChatGPT会成为下一代搜索引擎之王吗?seo在哪里?
    ChatGPT 直接颠覆了 SEO行业,能直接为用户生成答案的 ChatGPT 可能很快就会取代谷歌成为下一代搜索引擎,再也没有什么提高网页排名,SEO 也
  • vscode终端输出中文乱码问题解决图文教程

    vscode终端输出中文乱码问题解决图文教程
    解决vscode终端输出中文乱码问题,强推方法二,少走几年弯路 解决网上终端chcp65001仍然无效,或者vscode由utf-8改为GBK仍然无效的问题,提供
  • ROS机器人底盘坐标像素变换操作方法

    ROS机器人底盘坐标像素变换操作方法
    对于ROS小车底盘地图数据需要知道的点 1.整幅地图处于第三象限 2.坐标值代表距离,单位米。 3.分辨率单位(米/像素) 因此通过地图坐标得
  • ROS  TF坐标变换基本概念及使用案例介绍

    ROS TF坐标变换基本概念及使用案例介绍
    TF(TransForm),就是坐标转换,包括了位置和姿态两个方面的变换,坐标变换是机器人学中的概念。 在机器人学中,无论一个机器人多么复杂,
  • 程序猿表白妹子的代码神器
    女生眼中的程序员,身上带着好多标签直男,宅,不懂浪漫,枯燥,但这是因为你还没有了解程序猿,程序猿也可以非常浪漫。 程序猿用代
  • Flutter Dart快速排序算法介绍
    在日常研发的过程中,我们无时无刻都在考虑自己开发的程序是否高效,一段好的程序执行离不开对算法的深刻认识和熟练掌握。接下来的
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计