master
で、機能が無効になっているとしましょう。私はブランチfeature
でその機能に取り組んでいるので、その機能を有効にするだけの特別なコミット$
があります。次に、feature
で行った変更をmaster
にマージしますが、有効化のコミットはそのままにしておきます。だからそれは
main: A--B--X--Y
feature: A--B--$--C--D
ですから、$
コミットを機能の上に移動して、それを実行したいとします。
new feature: A--B--C--D--$
どうすればいいですか?
git rebase -i B
、次に移動$
エディタに表示されるリストの最後に。開くファイルの最初の行から始まります。また、その行を完全に削除して、ブランチの履歴からそのコミットを削除することもできます。
feature
で同じ順序でコミットを維持したい場合は、新しいブランチを作成して以下を実行する必要があります。それ以外の場合は、feature
でこれを実行します
git rebase -i <sha for commit B>
コミット$をリストの一番下に移動します
git checkout master
git rebase feature <or the other branch name>
質問では明確ではありませんでしたが、$がまったく必要ない場合は、移動するのではなくgit rebase -i
の後に削除します。失くす。あなたが歴史を変えているように。
これは、履歴の書き換えが悪いため、ブランチfeature
がリモートにプッシュされていないことも前提としています。