web-dev-qa-db-ja.com

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

my_local_branch」という名前のローカルブランチがあり、リモートブランチOrigin/my_remote_branchを追跡します。

これで、リモートブランチが更新されました。私は 'my_local_branch'にいるので、それらの変更を取り込みたいと思います。私はちょうどする必要があります:

git pull Origin my_remote_branch:my_local_branch

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

77
skyork

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

(見る:

 git branch -f --track my_local_branch Origin/my_remote_branch 
#OR(my_local_branchが現在チェックアウトされている場合):
 $ git branch --set-上流からmy_local_branch Origin/my_remote_branch 

(ブランチがチェックアウトされている場合、git branch -f --trackは機能しません。代わりに2番目のコマンドgit branch --set-upstreamを使用します。そうしないと、「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'をプッシュするときにアップストリームブランチの関係を確立していなかった場合、プッシュandセットには単純なgit Push -u Origin my_local_branch:my_remote_branchで十分でした上流ブランチ。
その後、後続のプル/プッシュでは、git pullまたはgit Pushで十分でした。

58
VonC

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

git pull Origin my_remote_branch

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

トラッキングブランチセットが既にあるので、指定する必要さえありません。

git pull

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

64
Amber