詳細了解git fetch與git pull的區別

2021-08-15 14:29:30 字數 1128 閱讀 3760

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...