ローカルブランチから別のブランチに「プル」する方法は?


231

これはとても簡単に聞こえますが、私はそれを理解することができません。少し前に実験的なブランチを作成しましたが、作成してからマスターで起こったすべての変更を取り込んでいきたいと思います。これはすべてローカルです。ローカルマスターからローカルmy_branchにプルしたいのですが、実行できません。これは機能していないようで、マスターはgitリポジトリではないことを教えてくれます。

git pull master

回答:


339

どこからプルするか、この場合は現在のディレクトリ/リポジトリからgitに指示する必要があります。

git pull . master

しかし、ローカルで作業するときは、通常は単にmergeを呼び出します(pullはmergeを呼び出します)。

git merge master

1
git pull . master原点からの新しいものもチェックしてくれると思いますので気に入っています。これは本当ですか?
Josiah Yoder

1
@JosiahYoderいいえ、pull .特にGitにあるリポジトリ.(つまり、現在のディレクトリ/リポジトリ)からプルするように指示します。origin.git/configファイルに定義されているリポジトリの場所(通常はリポジトリのクローンを作成するときに自動的に設定されます)の
略記

1
ああ!だから、git pull . masterローカルリポジトリの代わりに、原点から引くでしょうか?(起源からのフェッチはありません!?)それgit pull . master以上の利点はありますgit merge masterか?
Josiah Yoder

2
@JosiahYoderはい、まさに、元のリポジトリではなくローカルリポジトリから「プル」します。フェッチは行われません(ローカルリポジトリのすべてがすでにここにあるためです)。利点はありません。どちらのコマンドもほぼ同じです。早送りしている場合は、push . origin/branch:branch(プルではなく)を使用して、最初にチェックアウトせずにローカルブランチを更新できます。
knittl

私はあなたをたたえます。グレイスカルの力で!
R Claven

45

あなたが探しているのはマージです。

git merge master

ではpull、あなたは、リモートリポジトリから変更を取得し、現在のブランチにマージ。


38

かなり古い投稿ですが、gitを初めて使う人に役立つかもしれません。

一緒に行きます

git rebase master
  • ログ履歴がより明確になり、マージコミットが行われない(適切に行われた場合)
  • 紛争に対処する必要がありますが、それほど難しくはありません。

1
開発チームが分岐プロセスを管理する方法は確かにたくさんあります。個人的に、私はgitを8年間使用しており、リベースする必要がありませんでした。私は常にマージを使用しており、常に私のニーズを満たしています。確かにリベースでは、マージと同様に、2つの変更セットを「マージ」した正しい結果をgitが自動的に決定できないシナリオが発生する可能性があります。「よりクリーンな」コミット履歴についてのあなたの指摘について。個人的には、「コミット考古学」を行う必要がある場合に備えて、すべてのコミット履歴を維持することをお
勧めし

-1

ローカルからマスターへのような別のブランチからの真新しいプルを探しているなら、これに従うことができます。

git commit -m "Initial Commit"
git add .
git pull --rebase git_url
git push origin master
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.