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個命令:
-
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分支上
之後再進行比較合併 -
git pull:相當於是從遠程獲取最新版本並merge到本地
git pull origin master
上述命令其實相當於git fetch 和 git merge
在實際使用中,git fetch更安全一些
因爲在merge前,我們可以查看更新情況,然後再決定是否合併