web-dev-qa-db-ja.com

Git:リモートブランチをローカルにマージする

私はすべてのリモートブランチをgit fetch --allで引っ張りました。 git branch -aでremotes/Origin/branchnameとしてマージしたいブランチを見ることができます。問題はそれがアクセスできないということです。マージやチェックアウトができません。

159
micahblu

あなたはそれらのリモートトラッキングブランチ〜(git branch -rでリストされている)をそれらのリモートの名前で参照することができます。

これらのリモートブランチの1つをローカルブランチにマージしたい場合は、

git checkout master
git merge Origin/aRemoteBranch

反対のシナリオ:上の図のように、ローカルブランチをローカルブランチにマージするのではなく、ローカルブランチをリモートブランチにマージする場合は、その上に new localブランチを作成する必要があります最初にリモートブランチ

git checkout -b myBranch Origin/aBranch
git merge anotherLocalBranch

ここでの考えは、「あなたのローカルブランチの1つ」(ここではanotherLocalBranch)をリモートブランチ(Origin/aBranch)にマージすることです。
そのためには、最初に "myBranch"をそのリモートブランチを表すものとして作成します。それがgit checkout -b myBranch Origin/aBranch部分です。
そして then anotherLocalBranchをそれに(myBranchに)マージすることができます。

241
VonC

マージをするときはいつでも、マージしたいブランチ(例えば "git checkout branch-i-am-working-in")に入ってから、次のようにします。

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

78

たぶんあなたは track ローカルブランチを持つリモートブランチを使いたいでしょう:

  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
19
e18r

最初にOriginからリモートブランチを取得します。

git fetch Origin remote_branch_name

リモートブランチをローカルブランチにマージする

git merge Origin/remote_branch_name
10
LanilT

リモートブランチを既に取得していて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の回答に対するコメントです。コードブロックはコメントの形式に合わないため、別の回答として入力します)

2
geekobi