42

master機能が無効になっているとしましょう。私はブランチでその機能に取り組んでいるfeatureので、その機能を有効にするだけの特別なコミット$があります。ここで、行った変更をにマージしますが、有効化コミットはそのままにしておきますfeaturemasterだからそれは

main:    A--B--X--Y
feature: A--B--$--C--D

$それで、機能の上にコミットを移動することによって、それをやりたいとしましょう:

new feature: A--B--C--D--$

どうすればいいですか?

4

2 に答える 2

46

git rebase -i B、次に$、エディターに表示されるリストの最後に移動します。開いたファイルの最初の行から始まります。その行を完全に削除することもできます。これにより、そのコミットがブランチの履歴から削除されます。

于 2013-01-24T17:51:44.390 に答える
10

コミットを同じ順序で維持したい場合はfeature、新しいブランチを作成して次の手順を実行する必要があります。それ以外の場合は、feature

git rebase -i <sha for commit B>

commit$をリストの一番下に移動します

git checkout master
git rebase feature <or the other branch name>

質問についてははっきりしませんでしたが、$がまったく必要ない場合は、移動するのではなく、後で削除してください。ただしgit rebase -i、新しいブランチでこれを実行して、紛失しないようにします。あなたが歴史を変えているように。

featureこれは、書き換え履歴が悪いため、ブランチがリモートにプッシュされていないことも前提としています。

于 2013-01-24T17:53:00.437 に答える