深入了解一下Git fetch和git pull的区别---简单易懂

Git fetch和git pull区别为:远端bai跟踪分支不同、拉取不同、commitID不同。

一、远端跟踪分支dao不同

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。

fetch:相当于是从远程获取最新版本到本地,不会自动merge
pull:相当于是从远程获取最新版本并merge到本地

四、Git中从远程的分支获取最新的版本到本地有这样2个命令:
  1. git fetch:相当于是从zhi远程获取最新版本到本地,不会自动daomerge

    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前,我们可以查看更新情况,然后再决定是否合并

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章