ケース #xyz「Implement Hello World」の作業を行うブランチ case-xyz があるとします。
開発中に、最終的なコミットの一部であってはならないデバッグ出力などを追加します。
次のようなことができますか?
- case-xyz-debug に分岐し、そこでのみデバッグ コードをコミットします。
- 場合によっては、case-xyz-debug を case-xyz にマージします。
- case-xyz で最終パッチに入れるはずのものをコミットします。
- 最後に、case-xyz-debug を「逆マージ」します。つまり、いつ case-xyz にマージされたかに関係なく、そのブランチから発生したすべての変更を削除します。つまり、これは case-xyz-debug からのすべてのマージを元に戻すことと同じです。
マージ コミットを元に戻す場合、Git はマージを忘れないことを知っています。つまり、Git はまだマージ済みであると認識しているため、元に戻すことによってのみ再マージできます。したがって、case-xyz-debug で最初にコミットされたすべての変更が削除されることだけが必要であり、それがどのように記録されるかは関係ありません。ただし、次のようなこともできればいいと思います。
- git チェックアウト ケース-xyz
- git checkout case-xyz-done
- git "reverse-merge" case-xyz-debug
私は開発/デバッグを続けたいかもしれないので:
- git チェックアウト ケース-xyz
- ファイルを変更する
- git commit -am "おっと、忘れ物"
- git checkout case-xyz-really-done
- git "reverse-merge" case-xyz-debug
私の意図が明確であることを願っています。全く違う形でこれが実現できれば私も嬉しいです。