深入瞭解一下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前,我們可以查看更新情況,然後再決定是否合併

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