2016-12-13 6 views
1

常に開発されており、新しいコミットが作成されているbranchAがあります。たぶん20コミット前に、我々はbranchBを作りましたが、その機能は後で終了するはずです。このシナリオでは、適切な方法でマージされますか?

branchBで作業を開始しましたが、branchAからbranchBに変更する必要がありますか?

「はい」の場合は、数日で同じことをする必要がありますか?

混乱の根はbranchAbranchB両方が絶えずに開発されていると、新たなコミットが行われているという事実であるので、私は毎日branchBbranchAをマージすることは良い考えであるかどうかわからないです。

答えて

1

通常、すべての開発者は、default-branch (normally master)syncのブランチを使用する必要があります。 branchAbranchBが継続的に発展しており、branchAの変更が必要ない場合は、それをマージしないでください。 branchA機能が行われ、default-branch(マスター)にマージされ

した後、(branchA変更になるだろう)branchBmaster枝を引きます。

Rebase:branchAを頻繁にbranchBにプルしたい場合は、reabasingをお勧めします。

$ git checkout branchB 
$ git rebase branchA    # keep branchB changes top 
+0

この特定の例では、ブランチBを再配置する必要があることにも言及してください。 – stdcall

+0

@stdcall ok。私はrebasing部分を追加しました。 –

1

私はのために行くだろう:

マージを行うと branchAに作られたものの上に branchB内のすべてのコミットを置く
git checkout branchB 
git rebase branchA 

。それは、ここでは本当によく説明しています:https://git-scm.com/book/en/v2/Git-Branching-Rebasing

1つの警告はかかわら:branchBに取り組んでいくつかの人々がいる場合は、あなたのリベース支店をpush --forceする必要がありますようあなたは、あなたがリベースをやっている時間に同意する必要があります

  • 別の開発者が(あなたがリベースをしていた一方で、それらを押し込む者)が上書きされるコミット
  • 厄介な状況にbranchB地元にいくつかのコミットを持っている開発者を置く:になる可能性がありますリモートへしようとするpull branchB(リベース済み)originローカルコミットを元に戻すには、ローカルコミットを新しく追加する必要があります。branchB
関連する問題