追跡されたリモートブランチからの変更でローカルブランチを更新する


95

my_local_branchリモートブランチを追跡する' ' という名前のローカルブランチがありますorigin/my_remote_branch

これで、リモートブランチが更新されました。「my_local_branch」を使用していて、それらの変更を取り込みたいと考えています。私はちょうどすべきですか:

git pull origin my_remote_branch:my_local_branch

これは正しい方法ですか?

回答:


72

そのブランチの上流を設定しました

(見る:

git branch -f --track my_local_branch origin / my_remote_branch
#または(my_local_branchが現在チェックアウトされている場合):
$ git branch --set-upstream-to my_local_branch origin / my_remote_branch

git branch -f --trackブランチがチェックアウトされている場合は機能しません。git branch --set-upstream-to 代わりに2番目のコマンドを使用しないと、 " fatal: Cannot force update the current branch."が表示されます)

つまり、ブランチはすでに次のように構成されいます

branch.my_local_branch.remote origin
branch.my_local_branch.merge my_remote_branch

Gitにはすでに必要な情報がすべて含まれています。
その場合:

# if you weren't already on my_local_branch branch:
git checkout my_local_branch 
# then:
git pull

十分です


' my_local_branch' をプッシュするときに上流のブランチの関係を確立していなかった場合、上流のブランチgit push -u origin my_local_branch:my_remote_branchをプッシュして設定するには、単純な方法で十分でした。
その後、後続のプル/プッシュについて、git pullまたはgit push、再び、十分でした。


OPは、すでにリモートブランチを追跡していると述べています。
アンバー

7
@アンバーしたがって、私の答えgit pullは十分です。
VonC、2012

最初のコマンドはgit branch -f --track master origin/masterエラーを返します:fatal: Cannot force update the current branch.
マーク・クレイマー

@MarkKramerはい、ローカルブランチが現在チェックアウトされている場合に2番目のコマンドが使用されることを明確にするために、回答を編集しました。
VonC 2017年

また--set-upstream-to、これをに変更する必要があります--set-upstream。非推奨になり、削除されます。
マーククレイマー

86

:構文は使用しません- pull現在チェックアウトされているブランチを常に変更します。したがって:

git pull origin my_remote_branch

あなたがmy_local_branchチェックアウトしている間はあなたが望むことをします。

すでにトラッキングブランチセットを持っているので、指定する必要すらありません。

git pull

my_local_branchチェックアウトしている間、追跡されたブランチから更新されます。


これが正解です。それはそれと同じくらい簡単です。
m4l490n
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.