簡體   English   中英

Git:在此Git速查表的背景下,獲取與拉取

[英]Git: fetch vs. pull, in the context of this Git cheat sheet

我了解git fetch和git pull之間的區別(前者保留了本地分支不變,后者將更改合並到了本地分支中),但是我對此備忘單感到有些困惑:

在此處輸入圖片說明

“提取”正下方有一個箭頭,這使它看起來像提取和拉取是相同的功能。 據我了解,只有最底部的箭頭應該是“拉”。 是否有其他人同意“獲取”下方的箭頭不應存在? 如果可以,請您解釋一下原因?

拉屬於兩個箭頭(與之相鄰的箭頭)。 拉包括獲取; 它會更新您的本地存儲庫(與訪存相同),還會更新您的本地工作區。

嘗試使用fetch下方的箭頭表示的是,當您執行pull ,您將同時更新本地存儲庫和工作區。 因此, pull都為本地回購和工作區。

git pull本質上是git fetchgit merge

這是奧利弗·斯蒂爾Oliver Steele)關於所有這些如何組合的圖像

在此處輸入圖片說明

鏈接跟隨。

fetchmergemerge遠程回購同步到本地回購,這正是該圖所傳達的。 因此,它按照圖表是正確的。 如前所述,前者不合並,而后合並則是同步到本地倉庫后。

git docs

將更改從遠程存儲庫合並到當前分支。 在其默認模式下,git pull是git fetch的縮寫,其后是git merge FETCH_HEAD。 更精確地講,git pull使用給定的參數運行git fetch並調用git merge將檢索到的分支頭合並到當前分支中。 使用--rebase,它將運行git rebase而不是git merge。

所以git pull做兩個工作,第一個git fetch和第二個git merge。 獲取更新您的本地存儲庫,並合並更新您的工作目錄。 因此,兩個箭頭都代表拉動效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM