我想弄清楚如果我在當前分支中執行git fetch
將提取哪些分支,以及如何更改該分支(通過git remote
的一些變體或編輯.git/config
文件)。如何找到當前分支跟蹤什麼分支
從什麼遠程分支git pull
取內容? git fetch
提取內容是否一樣?有沒有可以告訴我所有這些信息的git命令?
我想弄清楚如果我在當前分支中執行git fetch
將提取哪些分支,以及如何更改該分支(通過git remote
的一些變體或編輯.git/config
文件)。如何找到當前分支跟蹤什麼分支
從什麼遠程分支git pull
取內容? git fetch
提取內容是否一樣?有沒有可以告訴我所有這些信息的git命令?
要建立跟蹤遠程分支的本地分支使用
git branch --set-upstream <local_branch> <remote_branch>
所以,如果你希望你的本地master
跟蹤origin/master
,類型
git branch --set-upstream master origin/master
然而,git fetch
獲取的所有分支配置的遙控器。
如果有多個遙控器(例如origin
other
和),
git fetch other
將獲取遠程other
而
git fetch origin
將獲取origin
。
要找出遠程分支正在跟蹤,開放.git/config
和搜索條目像
[branch "mybranch"]
remote = <remote_name>
merge = <remote_branch>
這告訴你,你的本地分支mybranch
具有<remote_name>
爲配置的遠程,它跟蹤的<remote_name>
<remote_branch>
。
哪些分支從遠程獲取以及它們是如何叫你的本地倉庫中的.git/config
以下部分定義:
[remote "origin"]
fetch=+refs/heads/*:refs/remotes/origin/*
url=<url_of_origin>
這告訴你,你的起源refs/heads
下存儲的分支可以取並在您當地的倉庫中儲存在refs/remotes/origin/
下。
如果您使用的是mybranch
和git fetch
,則會提取<remote_name>
(在[remote <remote_name>]
部分中指定)的修訂版本。如果您輸入git pull
,則在取得<remote_name>
的修訂後,<remote_name>
的分支<remote_branch>
將合併爲mybranch
。
有關其他信息,請參見手冊頁git branch
,git fetch
和git pull
。
我一直在尋找關於遠程分支的信息,而你最後一段(建議看看.git/config)非常有幫助。你知道什麼 [remote「origin」] fetch = + refs/heads/*:refs/remotes/origin/* mean(在我的.git/config中)? 'git fetch'是否將形式origin/refs/heads/xyz的所有分支帶入本地遠程跟蹤分支refs/remotes/origin/xyz?這是否發生在所有xyz或只有當前分支(在哪個'git fetch'發出)? –
這太好了。一個小小的編輯:如果你在'mybranch'上並輸入'git fetch',那麼'[] section_中指定的''_的修訂版本將被提取。我認爲這是正確的,對嗎? –
由於某種原因,我不能說「@ eckes」。它會自動刪除! :-( –