Git fetch和git pull的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git fetch和git pull的区别相关的知识,希望对你有一定的参考价值。
Git fetch和git pull区别为:远端跟踪分支不同、拉取不同、commitID不同。
一、远端跟踪分支不同
1、Git fetch:Git fetch能够直接更改远端跟踪分支。
2、git pull:git pull无法直接对远程跟踪分支操作,我们必须先切回本地分支然后创建一个新的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。
参考技术A Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新的版本到本地的test分支上
之后再进行比较合并
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并
结束本回答被提问者和网友采纳 参考技术B Git中从远程的分支获取最新的版本到本地有这样2个命令:
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新的版本到本地的test分支上
之后再进行比较合并
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并 参考技术C fetch:相当于是从远程获取最新版本到本地,不会自动merge
pull:相当于是从远程获取最新版本并merge到本地 参考技术D
git fetch [remote]: 下载远程仓库的所有变动
git pull [remote] [branch]: 取回远程仓库的变化,并与本地分支合并
更多的git命名可以查看:Git教程(10)- Git基本常用命令,开发中常用的命令都整理和讲解了。
Git 代码更新:git fetch 和 git pull 的区别
Git 从远程的分支获取最新的版本到本地有这样 2 个命令:
1. git fetch:相当于是从远程获取最新版本到本地,但不会自动 merge
git fetch origin master git log -p master origin/master git merge origin/master
以上命令的含义:
首先从远程的 origin 的 master 主分支下载最新的版本到 origin/master 分支上
然后比较本地的 master 分支和 origin/master 分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp git diff tmp git merge tmp
从远程获取最新的版本到本地的 tmp 分支上,之后再进行 比较、合并
2. git pull:相当于是从远程获取最新版本并 merge 到本地
git pull origin master
上述命令其实相当于 git fetch + git merge
,
在实际使用中,git fetch 更安全一些,因为在 merge 前,我们可以查看更新情况,然后再决定是否合并。
为了更好的理解,画了个图:
以上是关于Git fetch和git pull的区别的主要内容,如果未能解决你的问题,请参考以下文章