git fetch与git pull 之间的区别

    很多人对于git fetch与git pull之间的区别肯定比较陌生,有时候我也在想有了git pull为什么还要用到git fetch,他们都可以用来更新本地仓库,这确实有点多此一举,但是当自己真正接触到业务时,发现搞清楚他们之间的区别是很有必要的。(以下就是自己的一些理解,欢迎纠正修改,前辈的一篇很不错的文章https://blog.csdn.net/a19881029/article/details/42245955)

    在我们git的本地仓库.git文件里面,会有一个config文件,当我们去打开这个文件的时候,我们可以看见当前:本地库的当前分支为master,其关联的远程库。

git fetch与git pull 之间的区别

    我们先查看当前的git的commit日志:

 git fetch与git pull 之间的区别

        当我们在使用git pull时,如果只是有一个开发者是完全没有问题的,但当有多各个开发者协同开发时候,就会遇到问题,当我在我之前的需求之上提交了commit,后续又有别的开发者提交了commit,我利用git pull就会把远端所有的commit更新到本地,这这就是问题所在,这会导致我们整个项目的commit十分混乱,在我们后面的代码的维护,和项目优化及后期工作带来的很大的不方便。

        这时候git fetch的优点就显现出来,我们执行git fetch时,只会将自己的开发分支上的commit更新到本地,这样我们的版本以及commit就不会出现混乱的现象,对于后期的开发维护起到很大的作用。

借用一张图,理解更加简单:

git fetch与git pull 之间的区别