git fetch更新遠程倉庫的方式如下:
git fetch origin master:tmp //在本地新建一個temp分支,并將遠程origin倉庫的master分支代碼下載到本地temp分支 git diff tmp //來比較本地代碼與剛剛從遠程下載下來的代碼的區(qū)別 git merge tmp //合并temp分支到本地的master分支 git branch -d temp //如果不想保留temp分支 可以用這步刪除
(1)如果直接使用git fetch,則步驟如下:
創(chuàng)建并更新本 地遠程分支。即創(chuàng)建并更新origin/xxx 分支,拉取代碼到origin/xxx分支上。
在FETCH_HEAD中設(shè)定當前分支-origin/當前分支對應(yīng),如直接到時候git merge就可以將origin/abc合并到abc分支上。
(2)git fetch origin
只是手動指定了要fetch的remote。在不指定分支時通常默認為master
(3)git fetch origin dev
指定遠程remote和FETCH_HEAD,并且只拉取該分支的提交。
這個命令會訪問遠程倉庫,從中拉取所有你還沒有的數(shù)據(jù)。 執(zhí)行完成后,你將會擁有那個遠程倉庫中所有分支的引用,可以隨時合并或查看。
如果你使用git clone 命令克隆了一個倉庫,命令會自動將其添加為遠程倉庫(git remote -v)并默認以 “origin” 為簡寫。 所以,git fetch origin 會抓取克?。ɑ蛏弦淮巫ト。┖笮峦扑偷乃泄ぷ鳌?必須注意 git fetch 命令會將數(shù)據(jù)拉取到你的本地倉庫 – 它并不會自動合并或修改你當前的工作。 當準備好時你必須手動將其合并入你的工作。
如果你有一個分支設(shè)置為跟蹤一個遠程分支,可以使用 git pull命令來自動的抓取然后合并遠程分支到當前分支。 這對你來說可能是一個更簡單或更舒服的工作流程;默認情況下,git clone 命令會自動設(shè)置本地 master 分支跟蹤克隆的遠程倉庫的 master 分支(或不管是什么名字的默認分支)。 運行 git pull 通常會從最初克隆的服務(wù)器上抓取數(shù)據(jù)并自動嘗試合并到當前所在的分支。
git pull : 首先,基于本地的FETCH_HEAD記錄,比對本地的FETCH_HEAD記錄與遠程倉庫的版本號,然后git fetch 獲得當前指向的遠程分支的后續(xù)版本的數(shù)據(jù),然后再利用git merge將其與本地的當前分支合并。所以可以認為git pull是git fetch和git merge兩個步驟的結(jié)合。
git pull的用法如下:
git pull <遠程主機名> <遠程分支名>:<本地分支名> //取回遠程主機某個分支的更新,再與本地的指定分支合并。
因此,與git pull相比git fetch相當于是從遠程獲取最新版本到本地,但不會自動merge。如果需要有選擇的合并git fetch是更好的選擇。效果相同時git pull將更為快捷。
注:用git pull更新代碼的話就比較簡單暴力了但是根據(jù)commit ID來看的話,他們實際的實現(xiàn)原理是不一樣的,所以不要用git pull,用git fetch和git merge更加安全。
推薦教程:《Git》
更多關(guān)于云服務(wù)器,域名注冊,虛擬主機的問題,請訪問西部數(shù)碼官網(wǎng):m.ps-sw.cn