Git fetch 和 git pull的區(qū)別
Git中從遠(yuǎn)程的分支獲取最新的版本到本地有這樣2個(gè)命令:
- git fetch:相當(dāng)于是從遠(yuǎn)程獲取最新版本到本地甫菠,不會(huì)自動(dòng)merge
git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含義:
- 首先從遠(yuǎn)程的origin的master主分支下載最新的版本到origin/master分支上
- 然后比較本地的master分支和origin/master分支的差別
- 最后進(jìn)行合并
上述過程其實(shí)可以用以下更清晰的方式來進(jìn)行:
git fetch origin master:test
git diff test
git merge test
從遠(yuǎn)程獲取最新的版本到本地的test分支上,之后再進(jìn)行比較合并.
- git pull:相當(dāng)于是從遠(yuǎn)程獲取最新版本并merge到本地
git pull origin master
上述命令其實(shí)相當(dāng)于git fetch
和 git merge
在實(shí)際使用中叁扫,git fetch
更安全一些, 因?yàn)樵趍erge前糙及,我們可以查看更新情況,然后再?zèng)Q定是否合并.
Done