我不明白這個優點。我看到它在諸如this article之類的地方爭論過,取而代之的是提取機會在將它們合併到本地分支之前檢查這些更改。git fetch有什麼意義?
但是,例如在該文章中,作者使用git diff master origin/master
通過將新獲取的分支與其本地主控進行比較來檢查所做的更改。
這是我感到困惑的地方....無論您是否先取得指令,該命令都會起作用。無論哪種方式,它都比較本地主人和遠程主人。您不需要獲取將本地分支與遠程分支進行比較。
我錯過了什麼?
我不明白這個優點。我看到它在諸如this article之類的地方爭論過,取而代之的是提取機會在將它們合併到本地分支之前檢查這些更改。git fetch有什麼意義?
但是,例如在該文章中,作者使用git diff master origin/master
通過將新獲取的分支與其本地主控進行比較來檢查所做的更改。
這是我感到困惑的地方....無論您是否先取得指令,該命令都會起作用。無論哪種方式,它都比較本地主人和遠程主人。您不需要獲取將本地分支與遠程分支進行比較。
我錯過了什麼?
您錯過了git fetch
已用於更新遠程分支的本地副本。
所以你提到的命令會做當地分支master
和本地副本的origin/master
,而不是起源master
分支的實際狀態之間的diff
。 fetch
將連接到遠程服務器並下載遠程的所有更改(更改分支,標籤...)。
一如既往,git manual on Branching and Remote Branches解釋得很好。
fetch
是下級命令;例如,pull
就是用它來實現的。在大多數情況下,您可能不會直接使用它。
哇。不知道。真的?沒有提取,沒有辦法與遠程分支進行比較?你必須有一個遠程分支的「本地版本」? – Aerovistae
因爲git是一個分佈式的CVS,你本地的git倉庫將擁有它的本地分支(默認情況下爲'master')。但是,如果您使用一個或多個遠程服務器,git將製作這些服務器狀態的本地副本。他們可能有一些當地的分支機構或不同的分支機構。我不知道有什麼方法可以直接對遠程回購進行差異化...(至少不在git本身中)。 – achedeuzot
爲了與遠程倉庫進行比較,您必須下載該倉庫的狀態。網絡操作可能會很慢。非常慢爲了不會受到網絡操作的懲罰*每次運行diff時,git只在明確請求時才進行下載。這就是'git fetch'所做的。 –