1. ホーム
  2. git

git マージ時に特定のコミットを除外することは可能ですか?

2023-08-09 07:44:16

質問

リリースブランチから master ブランチにマージしたいのですが、リリースブランチには master ブランチに含めたくないコミットがあるとします。 これらのコミットのうちの 1 つまたは複数をマージしないようにマージを行う方法はありますか?

これまでのところ私の戦略は次のようになります(masterで)。

git merge --no-commit release-branch
# Resolve conflicts and apply reverse patch of the commits that I don't want included
git commit # Edit commit message so that it lists the commits that have been reverse-patched

もっと良い方法はないでしょうか?

どのように解決するのですか?

新しいブランチを作成し、そのブランチを対話的にリベースして不要なコミットを削除し、それをマージしてください。

リハッシュせずにブランチの途中から変更を取り出すことはできませんが、後のマージで同じ変更を見たときに正しいことが行われます (例: チェリーピックやなんちゃらから)。