2017-09-06 8 views
0

ローカルのリモートレポから最新のアップデートを受けたいと思います。私は通常、masterブランチにいる間にgit pullを実行します。私は今、新しいブランチを作成しました(ローカルコードに何も追加/変更しませんでした)。もし私がgit pullをしたら、最新のリモートの変更が私の新しいローカルブランチに反映されるのでしょうか、それともgit pullの後でそれを削除して作り直すべきでしょうか? ありがとう!最新の変更点を確認する必要がある新しいブランチを作成した後、マスターからローカルレポにgit pullを実行するのは安全ですか?

+0

によってブランチに組み込むと思います。これ以外にも具体的な質問がありますか? –

答えて

0

Gitはリモートマスターをlokalの新しいブランチにマージしようとします。変更がないので、現在のリモートマスターをあなたの支店に取得するだけです。

1

あなたが発行する正確なコマンドとgitの設定によっては、gitの動作は異なります。

pullについて最初に理解することは、現在のブランチを更新することです。 masterをチェックアウトしてpullをチェックアウトした場合、変更内容はmasterに組み込まれます(ブランチではありません)。ブランチをチェックアウトしてpullをチェックアウトした場合、変更はブランチに反映されます(ただしmasterは含まれません)。これはもちろん、ブランチングのポイントです。ブランチの変更が自動的に他のブランチに影響するわけではありません。両方に影響を与えたい場合は、そのことができます(詳細は以下を参照してください)。

また、gitに現在のブランチにどのような変更を組み込むかを指定することもできます。指定しない場合は、現在のブランチに対応するデフォルトの設定が検索されます。 (一部の人々は、このデフォルトの動作を行い、すべてのpullだと思うように見える、それがトラブルにそれらを得ることができます。)ですから、あなたのブランチにリモートmasterの変更を統合したい場合、あなたは

git checkout my_branch 
git pull origin master 

Iを行うことができます通常この使用法はお勧めしません。基本的には、より明示的な(設定の詳細などにはあまり依存しません)

の略語です。私はpullをかなり使っていますが、設定/ブランチの設定が "典型的"なreposのデフォルト動作のためだけです。

origin/masterの変更を複数のブランチに反映させる場合は、複数のマージ(および/またはリベース)操作を実行する必要があります。与えられたpullは1つだけを行います。だから、一般的に、あなたが最初に変更を取得したいあなたの地元のmaster

git checkout master 
git pull 

(または、構成に応じて、多分あなたはgit pull originあるいはgit pull origin masterを必要とするだろう)。次に、[はい]を選択すると、ローカルブランチの `Gitのpull`を行うことはもちろん、それを更新するか

git checkout my_branch 
git merge master 

または

git rebase master my_branch 
+0

+1これはより完全かつ率直にもはるかに良い答えですので、私の答えを削除します。追加することは、ローカルのマスターブランチを介して変更をラウンドトリップすることはオプションです。 'master'と' origin/master'の両方があなたのローカルマスターの同じコミットを解決するので、 'master'を使うコマンドは' origin/master'を使って実行できます。同じ結果。私はマスターのローカルコピーを保有しないという習慣にも慣れてきました。なぜなら、それは私が最新の状態に保つことを覚えておかなければならないもう一つのことだからです。 – LightBender

関連する問題