基於遠程跟蹤分支創建本地分支
如果你想基於遠程跟蹤分支創建本地分支(在本地分支上工作),你可以使用如下命令:git branch –track或git checkout –track -b,兩個命令都可以讓你切換到新創建的本地分支。例如你用git branch -r命令看到一個遠程跟蹤分支的名稱為“origin/refactored”是你所需要的,你可以使用下面的命令:
git checkout --track -b refactored origin/refactored
在上面的命令里,“refactored”是這個新分支的名稱,“origin/refactored”則是現存遠程跟蹤分支的名稱。
(在git最新的版本里,例子中‘-track’選項已經不需要了,如果最后一個參數是遠程跟蹤分支,這個參數會被默認加上。)
“–track”選項會設置一些變量,來保持本地分支和遠程跟蹤分支的相關性。他們對下面的情況很有用:
git pull命令下載新的遠程跟蹤分支之后,可以知道合並到哪個本地分支里
使用git checkout檢查本地分支時,可以輸出一些有用的信息:
Your branch and the tracked remote branch 'origin/master'
have diverged, and respectively have 3 and 384 different commit(s) each.
或者:
Your branch is behind the tracked remote branch
'origin/master' by 3 commits, and can be fast-forwarded.
允許使用的配置變量是:“branch.<local-branch-name>.merge”和“branch.<local-branch-name>.remote”,但通常情況下你不用考慮他們的設置。
當從遠程代碼倉庫創建一個本地分支之后,你會注意到,“git branch -r”能列出很多遠程跟蹤分支,但你的電腦上只有一個本地分支,你需要給上面的命令設置一個參數,來指定本地分支和遠程分支的對應。
有一些術語上的說法容易混淆需要注意一下:“track”在當作參數"-track"使用時,意思指通過本地分支對應一個遠程跟蹤分支。在遠程跟蹤分支中則指遠程代碼倉庫中的跟蹤分支。有點繞口。。。