git pull、fetch晰甚、merge
一張圖簡(jiǎn)單理解下:
可以簡(jiǎn)單的概括為:
git fetch
是將遠(yuǎn)程主機(jī)的最新內(nèi)容拉到本地衙传,用戶在檢查了以后決定是否合并到工作本機(jī)分支中。
而git pull
則是將遠(yuǎn)程主機(jī)的最新內(nèi)容拉下來后直接合并厕九,即:git pull = git fetch + git merge
蓖捶,這樣可能會(huì)產(chǎn)生沖突,需要手動(dòng)解決扁远。
git fetch 用法
git fetch 命令:
$ git fetch <遠(yuǎn)程主機(jī)名> //這個(gè)命令將某個(gè)遠(yuǎn)程主機(jī)的更新全部取回本地
如果只想取回特定分支的更新俊鱼,可以指定分支名:
$ git fetch <遠(yuǎn)程主機(jī)名> <分支名> //注意之間有空格
最常見的命令如取回origin
主機(jī)的master
分支:
$ git fetch origin master
取回更新后,會(huì)返回一個(gè)FETCH_HEAD
畅买,指的是某個(gè)branch在服務(wù)器上的最新狀態(tài)并闲,我們可以在本地通過它查看剛?cè)』氐母滦畔ⅲ?/p>
$ git log -p FETCH_HEAD
git pull 用法
前面提到,git pull
的過程可以理解為:
git fetch origin master //從遠(yuǎn)程主機(jī)的master分支拉取最新內(nèi)容
git merge FETCH_HEAD //將拉取下來的最新內(nèi)容合并到當(dāng)前所在的分支
即將遠(yuǎn)程主機(jī)的某個(gè)分支的更新取回皮获,并與本地指定的分支合并焙蚓,完整格式可表示為:
$ git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>
如果遠(yuǎn)程分支是與當(dāng)前分支合并,則冒號(hào)后面的部分可以省略:
$ git pull origin next
實(shí)際使用推薦git fetch + git merge
git merge最簡(jiǎn)潔用法
舉個(gè)栗子:
開發(fā)分支(dev)上的代碼達(dá)到上線的標(biāo)準(zhǔn)后洒宝,要合并到 master 分支
git checkout dev
git pull
git checkout master
git merge dev
git push -u origin master