git fetch和git pull都可以將遠端倉庫更新至本地那麼他們之間有何區別?想要弄清楚這個問題有有幾個概念不得不提。
fetch_head: 是乙個版本鏈結,記錄在本地的乙個檔案中,指向著目前已經從遠端倉庫取下來的分支的末端版本。
commit-id:在每次本地工作完成後,都會做乙個git commit 操作來儲存當前工作到本地的repo, 此時會產生乙個commit-id,這是乙個能唯一標識乙個版本的序列號。 在使用git push後,這個序列號還會同步到遠端倉庫。
有了以上的概念再來說說git fetch
git fetch:這將更新git remote 中所有的遠端倉庫所包含分支的最新commit-id, 將其記錄到.git/fetch_head檔案中
git fetch更新遠端倉庫的方式如下:
git merge tmp//合併temp分支到本地的master分支
git branch -d temp//如果不想保留temp分支 可以用這步刪除
(1)如果直接使用git fetch,則步驟如下:
(2)git fetch origin
只是手動指定了要fetch的remote。在不指定分支時通常預設為master
(3)git fetch origin dev
指定遠端remote和fetch_head,並且只拉取該分支的提交。
git pull: 首先,基於本地的fetch_head記錄,比對本地的fetch_head記錄與遠端倉庫的版本號,然後git fetch 獲得當前指向的遠端分支的後續版本的資料,然後再利用git merge將其與本地的當前分支合併。所以可以認為git pull是git fetch和git merge兩個步驟的結合。
git pull的用法如下:
git pull 《遠端主機名》因此,與git pull相比git fetch相當於是從遠端獲取最新版本到本地,但不會自動merge。如果需要有選擇的合併git fetch是更好的選擇。效果相同時git pull將更為快捷。《遠端分支名》:《本地分支名》
//取回遠端主機某個分支的更新,再與本地的指定分支合併。
apply call詳細了解
function thisobj argarray call 方法 function call thisobj arg1 arg2.定義 call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例 b.call a,args1,args2 a物件應用b物件的方法 他們都是用來代替另乙個物件呼叫乙...
詳細了解 Cookie Session Token
很久很久以前,web基本上就是文件的瀏覽而已,既然是瀏覽,作為伺服器 不需要記錄誰在某一段時間裡都瀏覽了什麼文件。每次請求都是乙個新的http協議,就是請求加響應,尤其不用記住是誰則剛發了http請求,每個請求相對來說都是全新的。也就是說必須把每個人區分開,這是乙個不小的挑戰,因為http請求是無狀...
詳細了解try catch return
情況1 try中有return,finally中沒有return public class trytest private static inttest catch exception e finally system.out.println finally return num 輸出結果如下 tr...