1

競合のある機能ブランチがありました。これらは解決され、解決がコミットされました。

残念ながら、私はマージに失敗し、以前にリリースされたいくつかの機能が後退しました。これは、マージ コミット sha1 と以前のタグの diff を実行することで確認できます。

私が行うとき、git show <sha1 for merge commit>すべての変更は無害です。

するとgit log -Sunique_variable_added_for_feature_and_lost_after_botched_merge、追加されたコミットのみが表示されunique_variable_...ますが、悪いマージからの問題のある削除は表示されません。

しかし、Tower のような gui git クライアントでコミットの sha1 を表示するという不名誉な手順を実行すると、失敗した行がはっきりとわかります。

完全に見逃してしまった、Tower で使用される追加のスイッチはありますか? つるはしがマージコミットで暗黙的な削除を取得しなかったのはなぜですか?

4

1 に答える 1

1

マージ コミットの差分は必然的に「結合差分」として表示され、マージ コミットのすべての親と比較した差分が表示されます。ただし、競合の解決のみを表示することで出力を短縮する diff オプションをgit show追加で使用します。マニュアルで説明されている--ccように、問題の原因となった削除など、競合しないハンクは「興味のないもの」としてスキップされます。

git show -c <commit>結合された diff を要約されていない形式で要求するために使用すると、マージ コミットによって導入されたすべての変更が表示されます。これはおそらく、GUI プログラムが行うことです。

于 2012-10-05T21:29:15.237 に答える