Git 代码更新:git fetch 和 git pull 的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 代码更新:git fetch 和 git pull 的区别的主要内容,如果未能解决你的问题,请参考以下文章

git fetch 的简单用法:更新远程代码到本地仓库

git pull 和 git fetch的区别?

Git中pull对比fetch和merge

Git中pull对比fetch和merge

git fetch

git fetch后怎么比较差异