7

私たちは通常、新しいブランチで機能開発を行い、次に master ブランチでバグ修正を行います。今回は、何らかの理由で、フィーチャー ブランチの 1 つにリークがあり、マージされるべきではないときに master にマージされました。

スクリーンショットから、機能ブランチ sms_open と 121217 があることがわかります。121217 は、スプリント後にマスターにマージされるはずでしたが、sms_open ブランチの推定時間はより長くなったため、将来のリリースでプッシュバックする必要がありました。sms_open コミット 609129d がマージされた理由がわかりません。不要なマージが 75e845b で発生していることがわかりますが、これを行った開発者は sms_open がマージされたことを否定しています。これを何らかの方法で確認する方法はありますか?

参考までに、ここで使用する git ツールは Mac OS 用の SourceTree です。

ソースツリーのスクリーンショット

4

2 に答える 2

6

から緑がかった線を下にたどると、121217につながっていることがわかりますsms_open。これは、の履歴121217が基づいていることを意味しsms_openます (親コミットの 1 つです)。

したがって、代わりに121217それに基づいてブランチを開始した人は誰でも(おそらく誤って)。これは commit の作成者である可能性があります。sms_openmastere70759c

Git でブランチをマージする場合、マージ先のブランチの一部ではない、マージ先のブランチからのすべてのコミットが結果の一部になります。そのため、 のコミットsms_openもマージされました。

于 2012-12-24T15:41:53.600 に答える
0

そのスクリーンショットには怪しいものがあります。"Merge branch 'xxx'" のようなメッセージは、masterにマージするときのデフォルト メッセージです。

青い線がマスターであることを意味するコミット c8cb6 があります。しかし、黄色の線がマスターであることを意味する 75e8 があります。残念ながら、他のメッセージは匿名化されているため、何が起こっているのかを理解するのに役立ちません. どのコミットがどの開発者からのものかは特に重要です。- 誰かが master で作業し、後でそのブランチの名前を変更したようです。(しかし、私は伝えるのに十分な詳細を持っていません。)

履歴が意味をなさない場合、関連する早送りマージまたは強制プッシュが存在する可能性があります。特に、ff マージは単に履歴に記録されないため、意地悪です。

公式の git リポジトリにアクセスできる場合は、そこにある reflog から、誰がいつ何をプッシュしたかがわかります。

于 2012-12-24T18:10:23.103 に答える