1:其實在 從遠程分支分出來 的分支都是 跟蹤分支(track) ,當對該分支進行 push 和 pull 時,如果該分支 和遠程分支同名 git 會知道推送到遠程哪個分支,從哪個遠程分支同步到本地分支。其實 每次克隆壹個倉庫時,本地都會新建壹個 master 分支來track 遠程的 origin/master 。如果不同名,我們需要人為指定 git push origin branch_name
2: 如果本地新建了壹個分支 branch_name ,但是在 遠程沒有 ,這時候 push 和 pull 指令就 無法確定該跟蹤誰,壹般來說我們都會使其跟蹤遠程 同名分支 ,所以可以利用** git push --set-upstream origin branch_name ,這樣就可以自動在遠程創建壹個 branch_name 分支,然後 本地分支會 ****track**** 該分支。後面再對該分支使用 push 和 pull 就自動同步**。無需再指定分支。
3:跟蹤遠程分支
1)如果 遠程新建了壹個分支 , 本地沒有該分支 ,可以利用** git checkout --track origin/branch_name** ,這時本地會 新建 壹個 分支 名叫 branch_name ,會 自動跟蹤****遠程 的同名分支 branch_name 。
從圖中就可以看到本來遠程有壹個 test1 分支,本地沒有,利用該指令後,本地分支就出現了 test1。
2)用上面 1) 中方法,得到的分支名永遠和遠程的分支名壹樣,如果想新建壹個本地分支不同名字,同時跟蹤壹個遠程分支可以利用:
git checkout -b new_branch_name branch_name
這條指令本來是根據壹個 branch_name 分支分出壹個本地分支 new_branch_name,但是如果所根據的分支 branch_name 是壹個遠程分支名,那麽本地的分支會自動的 track 遠程分支。建議跟蹤分支和被跟蹤遠程分支同名
總結:壹般我們就利用 git push --set-upstream origin branch_name 來在遠程創建壹個與本地branch_name 分支同名的分支並跟蹤;利用 git checkout --track orgin/branch_name 來在本地創建壹個與 branch_name 同名分支跟蹤遠程分支。