9

次のシナリオがあります。

3つのブランチ:
-マスター
-システムの新機能を開発する目的でマスターから
分岐したMyBranch-ブランチのローカルコピーとしてMyBranchから分岐したMyBranchLocal

MyBranchは、他の開発者(私と同じ機能に取り組んでいる)に対してリベースされ、プッシュされています。

MyBranchブランチの所有者として、リベースしてマスターとの同期を維持したいと思います。また、MyBranchLocalに加えた変更をMyBranchとマージする必要があります。

それを行うための良い方法は何ですか?

私がこれまでに試したいくつかの可能なシナリオ:

I.1.MyBranchLocalへの
変更をコミットします
2.マスター
に対してMyBranchをリベースします3.MyBranchに対してMyBranchLocal
をリベースします4.MyBranchをMyBranchLocalとマージします

II。
1.MyBranchLocalへの変更をコミットします
2.MyBranchをMyBranchLocalとマージし
ます3.MyBranchをマスターに対してリベースします
4.MyBranchLocalをMyBranchに対してリベースします

III。
1.変更をMyBranchLocalにコミットします
2.MyBranchをマスターに対して
リベースします3.MyBranchをMyBranchLocalとマージします4.MyBranchLocalを
MyBranchに対してリベースします

シナリオIIIがコミット履歴を大幅に混乱させ、コミットを複製する可能性があることはすでに知っています。

あなたの経験は何ですか?マージの労力を最小限に抑え、履歴をクリーンに保つために、どのようなシナリオをお勧めしますか?

4

2 に答える 2

4

私の個人的な提案。これは、ストレートなコミット履歴を持ち、「より具体的な」ブランチで失敗することに焦点を当てています (機能ブランチよりもローカル ブランチを台無しにした方がよいでしょう)。

  1. 変更を MyBranchLocal にコミットする
  2. MyBranch に対して MyBranchLocal をリベースする
  3. MyBranch を MyBranchLocal とマージします (早送りする必要があります) - MyBranch = Local
  4. Master に対して MyBranch をリベースする
    1. (オプション) マスターを MyBranch とマージします (これも早送りする必要があります)
  5. MyBranch に対して MyBranchLocal をリベースする
于 2010-04-08T17:21:06.610 に答える
4

Linus emailへのリンクの後にこの質問を見つけました。電子メールによると、他の人の履歴を破壊する可能性があるため、公開サイトで自分の履歴を公開した後にリベースしないでください。そのため、MyBranchLocal のリベースは問題ありませんが、MyBranch (他の開発者と共有) のリベースはそうではありません。

于 2012-04-09T08:04:38.823 に答える