1

次のような master ブランチがあります。

A-B- C -D-E-F
   \   /
    H-I

ここで、H と I は別の開発者によって作成された同じブランチへのコミットであり、D は I と C のマージからのコミットです。コミット H と I からすべてのコードを削除したいと考えています。基本的に、ブランチを次のようにしたいと考えています。

A-B-C-E-F

私の計画は次のことでした:

git rebase --onto C E
git push origin master --force

他の開発者には、ブランチやフォーク、またはこれが混乱するようなものはありません。これらのコマンドは私が望むことをしますか? リベースに -p フラグは必要ありませんか?

4

1 に答える 1

0

私は最終的に使用しました:

git rebase -i C

リベースでは、編集するドキュメントが表示されます。削除するコミットの行 (H と I) を削除します。次に、一連のマージ競合を修正し、最終的に次のように呼び出す必要がありました。

git push origin master --force

削除したいコミットよりも約 9 つのコミットがあり、5 回または 6 回マージする必要がありました。何らかの理由で同じファイルに同じ変更を加える場合もありました。100 件のコミットを行っている場合、これは良い答えではないかもしれません。

于 2013-10-13T07:23:10.643 に答える