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