2017-02-28 36 views
0

長時間実行された完全な回帰テストを受けていたマスターから分岐した長期実行のブランチブランチ1がありました。子ブランチがマスターにマージされた後、孫のブランチをマスターにマージ

これはテストされていましたが、私はbranch1の変更を必要とする機能に取り組んでいました。branch1aはbranch1から分岐しました。私はまだそれに取り組んでいますが、それはすぐに完了する必要がありますTM

今朝、branch1のテストが終了し、masterにマージされました。私たちはVSTSを使用しています。私はそれがどのようにマージされたのか正確にはわかりません(リベース、スカッシュなど)。 branch1のコミットと他のPRをリストするPRがあります。それは、マスター履歴のコミット1として表示されるようです。

今私は、私の親枝は一種のものですが、そうではありません。 PRとマスターを作成して400ファイルを変更した場合、それを作成するとbranch1となり、12ファイルが変更されます。

branch1の分岐先ではなく、branch1を分岐する前に、マージで共通の親を使用するように見えますが、問題が多く発生する可能性があります(技術的には、最新のファイルにはほとんど変更がありません)。

ここでマージの代わりにリベースを使用すると効果的でしょうか?私のコミットは、現在マスターであるものに対してきれいに再生する必要があります(正しくリベースすることが分かっている場合)。

私たちは、マスターに直接コミットできないようなVSTSのポリシーを持っています.PRを使用する必要があります。私はrebaseを使ったPRを作ることができるのかどうかはわかりません...もしmaster、branch2をブランチにし、branch2に私のブランチをrebaseしてから、branch2からmasterにPRしてください。

答えて

0

gitと思うと助かります。その意味では、branch1は「一種もなくなった」わけではありません。それは削除され、削除されたか、または削除されておらず、削除されていません。あなたが描いていることから、私は後者を考えています。

実際には、支店がmasterとどのように結合されたかを確認する必要があります。私はちょうどそれが統合されたと思われる。マスターの履歴の見方によっては、マージの結果を「単一のコミット」として記述することもあればそうでないこともあります。 (スカッシュに関する文書は、この点でIMOを混乱させる可能性があります。)

2番目の親を持つコミットはありますか?そうなら、それは真のマージです。そうでなければ、それはスカッシュです(そしてそれは物事をより困難にします)。それが1つのコミットだけであれば、単純なリベースではありません(しかし、スカッシュは実際には特殊なタイプのリベースですので、それは私が推測するような髪の毛を分けるものです)。

真のマージであれば問題ありません。 branch1amasterにマージすることができます。せいぜいこれは、紛争解決をもう少し脅威にさせるかもしれない。小規模な競合解消作業に分割したい場合は、branch1abranch1にマージしてからbranch1masterに再度マージすることができます(または、分岐トポロジで対称感を維持したい場合)。

rebaseが何かを簡単にするとは思わないでしょうし、branch1aコミットのどれかがリモートのリポジトリにプッシュされている場合は、リベースすることをお勧めします。いずれにせよ、再構築の理由は、より線形の履歴を必要とする場合です。

あなたの最後の段落については、あなたはそのアイデアを持って自分自身にとって複雑すぎるものです。ただ必要はありません。

+0

branch1にmasterを入れるコミットには、親が1つしかありません。 – Josh

+0

私の変更はすべてリモートブランチに分岐されましたが、私は現在、その機能を使っている唯一のブランチです。私たちはまだbranch1を持っているので、2ステップアプローチ(branch1a-> branch1-> master)がより良く聞こえます。 – Josh

関連する問題