switch - 讓現有的Git分支跟踪一個遠程分支?




git switch branch (13)

我知道如何創建一個跟踪遠程分支的新分支,但是如何使現有分支跟踪遠程分支?

我知道我可以編輯.git/config文件,但似乎應該有一個更簡單的方法。


使用'--track'選項

  • git pull

    git checkout --track <remote-branch-name>

  • 要么:

    git fetch && git checkout <branch-name>


1-使用以下命令更新本地元數據: git fetch --all

2-使用: git branch -a顯示您的遠程和本地分支,請參閱以下屏幕截圖

3-切換到目標分支,即要與遠程鏈接:使用

git checkout branchName

例子:

4-使用以下方法將本地分支鏈接到遠程分支:

git branch --set-upstream-to nameOfRemoteBranch

注意: nameOfRemoteBranch :從步驟2“git branch -r”的輸出中復制

使用示例:


實際上,對於已接受的工作答案:

git remote add upstream <remote-url>
git fetch upstream
git branch -f --track qa upstream/qa
# OR:
git branch --set-upstream qa upstream/qa

對於1.6.x,可以使用git_remote_branch工具完成:

grb track foo upstream

這將導致Git使foo跟踪upstream/foo


您可以執行以下操作(假設您已在主服務器上簽出並希望推送到遠程分支主服務器):

如果您還沒有設置'遙控',請設置它

git remote add origin ssh://...

現在配置master來跟踪:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

並推:

git push origin master

您可能會發現git_remote_branch工具很有用。 它提供了用於創建,發布,刪除,跟踪和重命名遠程分支的簡單命令。 一個很好的功能是你可以請求一個grb命令來解釋它將執行什麼git命令。

grb explain create my_branch github
# git_remote_branch version 0.3.0

# List of operations to do to create a new remote branch and track it locally:
git push github master:refs/heads/my_branch
git fetch github
git branch --track my_branch github/my_branch
git checkout my_branch

我使用以下命令(假設您的本地分支名稱是“branch-name-local”,遠程分支名稱是“branch-name-remote”):

$ git branch --set-upstream-to=origin/branch-name-remote branch-name-local

如果本地和遠程分支具有相同的名稱,則只需執行以下操作:

$ git branch --set-upstream-to=origin/branch-name branch-name

我相信,早在Git 1.5.x你可以讓一個本地分支$BRANCH跟踪一個遠程分支origin/$BRANCH ,就像這樣。

鑑於存在$BRANCHorigin/$BRANCH ,並且您目前沒有簽出$BRANCH (如果有的話,請切換),請執行以下操作:

git branch -f --track $BRANCH origin/$BRANCH

這會重新創建$BRANCH作為跟踪分支。 儘管已經存在$BRANCH-f強制創建。 如果通常使用默認值(即git-config參數branch.autosetupmerge為true),則--track是可選的。

注意,如果origin/$BRANCH尚不存在,您可以通過將本地$BRANCH推送到遠程存儲庫來創建它:

git push origin $BRANCH

接下來是上一個命令,將本地分支推進到跟踪分支。


或者簡單地通過:

如果你還沒有進入分支,請切換到分支:

[za]$ git checkout branch_name

[za]$ git branch --set-upstream origin branch_name
Branch origin set up to track local branch brnach_name by rebasing.

你準備好了:

 [za]$ git push origin branch_name

你可以alawys看一下配置文件,看看通過運行跟踪什麼:

 [za]$ git config -e

知道這一點也很好,它顯示了哪些分支被跟踪,哪些分支沒有。 :

  [za]$ git remote show origin 

確保你運行:

git config push.default tracking

能夠推動無故障


編輯.git/config可能是最簡單,最快捷的方式。 無論如何,這就是處理遠程分支的Git命令正在做的事情。

如果您不想手工處理文件(並且這並不難),您可以隨時使用git config來執行此操作......但是,這只是編輯.git/config文件,無論如何。

當然,有一些方法可以在使用git checkout時自動跟踪遠程分支(例如,通過傳遞--track標誌),但這些命令適用於分支,而不是現有分支。


要創建新分支,我們可以使用以下命令

 git checkout --track -b example origin/example 
對於已經創建的分支來創建遠程之間的鏈接然後從該分支使用下面的命令

 git branch -u origin/remote-branch-name


這也會奏效

git branch --set-upstream-to=/< remote>/< branch> < localbranch>






git-branch