2014-02-08 199 views
106

我已通過git fetch --all將所有遠程分支拉出。我可以看到我想通過git branch -a合併的分支作爲遙控/起源/ branchname。問題是它不可訪問。我無法合併或結帳?Git:本地合併遠程分支

回答

167

您可以參考這些遠程跟蹤分支〜(與git branch -r列出)​​與他們的遠程名稱。

如果要合併的遠程分支之一在你的本地分支:

git checkout master 
git merge origin/aRemoteBranch 

如果要合併當地的一個分支,在那些偏遠的一個分支,你需要創建一個本地分支在上述遠程分支第一的頂部:

git checkout -b myBranch origin/aBranch 
git merge aLocalBranch 
+0

aLocalBranch?是一個錯字?我想你打算再次寫「myBranch」? – knocte

+0

@knocte否:「如果你想將一個本地分支合併到其中一個遠程分支上」:我將「'aLocalBranch'」合併到''myBranch'','myBranch'代表一個遠程分支'產地/ aBranch'。 – VonC

57

每當我做了合併,我進入我要合併到(例如「git checkout branch-i-am-working-in」)的分支,然後執行以下操作:

git merge origin/branch-i-want-to-merge-from

10

也許你想軌道遠程分支與當地分公司:

  1. 創建新的本地分支:git branch new-local-branch
  2. 設置這個新創建的分支用於跟蹤遠程分支:git branch --set-upstream-to=origin/remote-branch new-local-branch
  3. 進入到這個分支:git checkout new-local-branch
  4. 拉遠程分支到本地分支機構的所有內容: git pull
+1

我發現這是將多個遠程分支合併到我正在處理的新分支中的好方法。謝謝。 –

+0

用一個命令合併多個分支的方法非常棒 –

0

如果你已經獲取遠程分支和做git branch -a
你獲得類似:

* 8.0 
    xxx 
    remotes/origin/xxx 
    remotes/origin/8.0 
    remotes/origin/HEAD -> origin/8.0 
    remotes/rep_mirror/8.0 

之後,您可以使用rep_mirror/8.0在本地指定遠程分支。

訣竅是remotes/rep_mirror/8.0不起作用,但rep_mirror/8.0呢。

因此,像git merge -m "my msg" rep_mirror/8.0這樣的命令進行合併。

(注:這是@VonC答案評論我把它當作另一種答案,因爲代碼塊不適合的註釋格式。)