2017-07-22 5 views
2

2つのブランチmasterfeatureがあります。他のブランチからのコミットをスカッシュすることは安全ですか

開発がfeature支店に行き、そのブランチに複数が行わコミット、それらの間にmaster支店を持ついくつかのマージがあったので、機能ブランチのログは、例えばのようなものです:

  • 機能コミット1

  • マスターコミット1

  • 機能コミット2

  • マスターは2

  • 機能をコミット3

をコミットこのすべてが1 feature commit 1にコミットスカッシュすることは安全ですか?

masterfeatureブランチをマージする際に何か問題がありますか?

+0

あなたはつぶすでしょうか?マージする直前ですか?これが起こったマージ後TadijaBagarić@ –

+0

なし、 – marknorkin

答えて

0

は、このすべてが一つの特徴1をコミットにコミットスカッシュすることは安全ですか?

いいえ、そう

を行うことは安全ではありませんマスターに機能 ブランチをマージするとき、私が遭遇する可能性の問題はありますか?

私が問題として理解しているように、この場合、マスターブランチの履歴を変更して基本的に全員にブレーキをかけます。

最初の1つから最後のコミットまですべてのコミットをブランチすると、それらの2つの間ですべてのマスターコミットもスカッシュされますが、異なるファイルを変更したマスターコミット。

あなたの潰れたコミットには、ファイルの内容は変更されていないのにコミットハッシュが変更されても、変更されていないファイルがたくさんあり、このレポであなたと働いている人々は、後でさまざまな紛争を起こします。どの時点で

0

masterブランチ上のファイルを変更すると、マージ競合(またはさらに悪い、望ましくないサイレントオーバーライド)が発生するため、他の誰かが自分の仕事をmasterにコミットすると、コラボレーションを難しくします。別のノートで


、あなたの機能開発中 masterからの変更を必要とするので、あなたの feature分岐履歴は、そのように見える場合は、なぜあなたが更新を必要とする masterの上にちょうど rebaseあなた feature枝?

基本的には、マージする直前にmasterから分岐したように、featureが表示されます。

あなたがを使用するのであれば機能の開発中に、master更新情報を取得するためにをマージ:

  • 機能を1つの
  • マスターをコミット1つの
  • 機能をコミット2
  • マスターをコミット2
  • をコミット機能コミット3

しかし、あなたはを使用している場合master更新情報を取得するためにをリベース:

  • マスターコミット1
  • マスターコミット2
  • 機能コミット1
  • 機能2
  • は、機能が3
をコミットコミット

だから、あなたがをマージするときはをmasterに戻すと、マージは基本的に早送りマージになり、フィーチャーはmasterブランチの上にコミットされます。

もちろん、履歴を保存したい場合など、マージが適切な場合がありますが、それはあなたとあなたのワークフローによって異なります。

マージ/が良いの違いをリベース説明しますいくつかのより多くのリソース:あなたは機能ブランチで作業を終えたら

https://www.atlassian.com/git/tutorials/merging-vs-rebasing

https://git-scm.com/docs/git-rebase

0

、あなたはmasterブランチにそれをマージする必要があります。フィーチャーブランチとマスターブランチの両方に同じ場所に変更が含まれている場合、マージの競合が発生する可能性があります。マージはローカルリポジトリで行われるため、安全です。すべての変更が正しいことを確認する時間を取ることができます。しかし、あなたが変更をプッシュしてチームに利用可能になると、間違いが拡大する可能性があります。

多くの場合、マスターをフィーチャーブランチにマージし、フィーチャーブランチで可能なマージ競合を修正してから、マスターにマージすることをお勧めします。これにはもう少しベーシックなステップが含まれていることは分かっていますが、リスクを伴わずにマージをプッシュするオプションがあり、オープンな質問に答えることができる人やテスターを使って試してみる人がいるので、はるかに安全な状況で。

マスターにプッシュすることは、必ずしもスーパーリスクであるとは限りません。リスクレベルは、マスターにプッシュしてプッシュコードをライブにするまでの距離に応じて異なります。マスターにプッシュされたものが即座に生き残ると、それは非常に危険です。マスターがステージングであればリスクは軽減されますが、それでも、あなたのフィーチャーブランチで可能なマージ問題を解決するのはより礼儀正しいと思います。すべてが大丈夫です、そしてそれをマスターに戻してください。

最後にフィーチャーにマージされてからマスターに変更がない場合は、フィーチャーブランチをマスターにマージすることができます。

理論的には、それぞれのコミットを別々にマージする方が安全ですが、コミットが十分にテストされている場合に限りますが、実際には誰も実行しません。変更。ヘッドのマージは、いくつかの理由で失敗し、非互換性はどこから来るのかを決定する必要がある場合でも、これだけ必要とされています。

関連する問題