2011-07-26 10 views
32

トラッキングオプション付きブランチAから新しいgitブランチBを作成しました。親ブランチから現在のブランチを更新する

Aブランチがわずかなコミットで更新されると、私はコミットをBにも引き出したいので、それを追跡して後で大きな変更に直面する必要はありません。

私はこれにどのようにアプローチすればよいですか?それはgitで自動的に行われますか?

+0

実際に分岐Aは、分岐Aからのフィードという以外に何も追加枝を追跡していますか? –

+2

ブランチBをAでリベースする必要があります。 –

答えて

35

これは自動的に行われません。あなたは手動でAからBへの変更をマージする必要があります。これはかなり簡単です。 B.に合併としてだけで分岐Bに切り替えて、自動的に限り、あなたは任意の競合を持っていないとAからBに変更をマージします

git merge A 

を行い、Aの変化の全てがマークされます一般的なベストプラクティスは毎日のマージを行うことですが、ブランチを使用するユーザー数/コミット数に依存します。

+0

Aがリモートブランチであり、Bがローカルブランチであると話している場合は、git pullで十分です – HackerGil

2

Bの呼び出しがgit clone /path/to/server/Aだったとすると、git pullを実行するだけで済みます。それはの動作です。最初にfetch上流からの変更(場合によっては追跡されたブランチA)、mergeこれらの変更は、追跡されたブランチ(あなたの場合はB)を追跡するブランチに変更されます。

Git Bookとは、そのトピックについて深く議論していますので、読んでみる価値があります(あなたが急いでいなければ、残りの部分も読んでください)。

+0

ちょっと、ちょっと不思議です。実際にAからクローンを作成してブランチBを作成したのかどうかはわかりません。ブランチの 'git branch A'を作成しました。だから、私がgit pullを行うと、gitは 'あ​​なたがマージしたいブランチを教えてくれないと私に尋ねてきます。' – user482594

+0

@ user482594: 'pull'はあなたがリモート。もしあなたが 'A'にいて' git checkout -b B'を実行しただけの場合、単に 'merge'(' B'の間に 'git merge A'と入力してください)することができます。 – eckes

関連する問題