1

目標

リベースを使用して、最近のコミットを変更したいと考えています。魔法のコマンドはgit rebase -i

問題のコミットを削除しようとしているとしましょう

  • まず、そのコミットが(およそ)どれくらい前のものかを調べます。次に、次のようにします。
    • git rebase -i HEAD~10


-出典:あまり複雑でない git の質問
に対する Greg Hewgill の回答


問題

最近 --no-ff マージを行っていない限り、これはうまく機能します

たまたまgit flowに従っている場合は、 --no-ff マージを常に実行します

  • rebase -i を爆破する方法理由の例については、以下の「ソース」セクションを確認してください--no-ff マージ
  • とりあえず、私を信じてください(または自分で試してみてください):それはきれいではありません


実際の質問

このページを見ると--preserve-merges(または単に-p) オプションが-i表示されます。

-i問題は、それを行うと、以前の素敵なポップアップが表示されなくなることです
->「このコミットを編集し、それをつぶす」などの選択肢があるもの
->したがって、できます' t は当初の目標を満たしています: rebase を使用して最近のコミットを変更/削除します:(

どうしようか?




ソース

問題のセクション:

  • リベース殺人 --no-ff コミットの最初の例
  • 2 番目の例
    • 彼の引用: 「TL;DR バージョンは次のとおりです。リベースするときは、常に -p フラグを使用してください」
4

2 に答える 2

1

-p-iは相互に排他的ではありません。両方を同時に使用できます。ただし、これを行うときは非常に注意してください。コミットの順序を変更することは悪い考えです。また、この方法でマージ コミットを削除しようとしないでください。物事を不適切な状態にするのは非常に簡単です。

git rebase -p -i HEAD~10
于 2013-04-21T03:07:30.933 に答える