的--track
標誌旨在創造一個新的分支時使用:
git branch --no-track foo origin/master # new local foo, with no upstream
git branch --track bar origin/master # new local bar, tracks origin/master
在這兩種情況下,你告訴git的,新的本地分支是與它目前指向提交創建由第二個參數識別(這裏是origin/master
)。然後,分支也不會或者不會跟蹤另一個分支(這意味着git status
會說類似ahead 2, behind 1
的東西,並且git pull
會知道要合併的東西)。
如果您不指定這些選項,git branch
會猜測是否要跟蹤是否給它第二個參數(但也請參閱branch.autosetupmerge
配置標誌)。 (這與git checkout
稍有不同,分支名稱不存在;這會查找具有「類似」名稱的遠程跟蹤分支)。
舊的--set-upstream
和新的--set-upstream-to
是相同的除了參數的順序/位置。固定的問題是,要改變foo
跟蹤畢竟origin/master
,你必須寫:
git branch --set-upstream foo origin/master
其中「看起來像」你問設置origin/master
有foo
作爲其上游。附:
git branch --set-upstream-to=origin/master foo
很明顯,你設置foo
有origin/master
作爲其上游。此外,這允許您設置當前分支的上游,而不必到名當前分支的寫:
git branch --set-upstream-to=origin/master
這更像剩餘git branch
命令(它們都默認爲上的工作當前分支)。
請注意,舊的set-upstream
和新的set-upstream-to
在分支已存在後使用。 (另外,很難用一隻貓在膝蓋和鍵盤上行走來輸入這些答案:-))
謝謝!簡明扼要。 – 2014-10-02 00:58:39