百度的鏈接:https://zhidao.baidu.com/question/200204875340723965.html
Git fetch和git pull區別為:遠端跟蹤分支不同、拉取不同、commitID不同。
一、遠端跟蹤分支不同
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。
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
從遠程獲取最新的版本到本地的test分支上
之后再進行比較合並
2. git pull:相當於是從遠程獲取最新版本並merge到本地
git pull origin master
上述命令其實相當於git fetch 和 git merge
在實際使用中,git fetch更安全一些
因為在merge前,我們可以查看更新情況,然后再決定是否合並