対話型編集中にvim内からgit rebaseを中止する方法


138

インタラクティブなリベースを行うとき、例えば

git rebase -i HEAD~3

リベースのインタラクティブエディター(私の場合はvim)が開き、コミットを編集してリベースします

pick c843ea2 Set Vim column limit to 80 (OS X)
pick fc32eac Add Bash alias for `pbcopy` (OS X)
....

リベースを中止してvimを終了したい場合:q、リベースの開始はとにかく開始します。1.9.0.msysgit.0Windowsでgitバージョンを使用しています。

もちろんpick、すべての行を削除できますが、長い履歴をリベースする場合は、多くのことを行う必要があります。別の方法はありますか?

リベースのインタラクティブエディター(vim)を終了してリベースを中止するにはどうすればよいですか?


メモ帳などの別のエディターを使用しますか?もしそうなら、私はそのための解決策を持っています
スティーブンペニー

5
git rebase --abort
vanduc1102 2017

@ vanduc1102私のために働く、それが答えであったらいいのに!
Cバウアー

回答:


257

エラーコードでエディターを終了すると、リベースは中止されます。

vimでエラーコードを表示して終了するには、次のようにします。

:cq

こことvimdocをここで参照してください。


6
タイピングが少なく、同じ結果
Zach Posten

44

コメントではないすべての行をファイルから削除するだけです。次に、指定されたデフォルトのパスに保存して、エディターを終了します。

その結果、gitはこのリベースでは何もしません。

あなたが使用できるvimのすべての行を削除するには

:%d|x

次に、保存して終了します。

Vimでファイルのすべての行を削除する

Vimエディターを終了する方法は?

VIM-同じ行に複数のコマンド


これはマージコミットには当てはまりません。インタラクティブなリベースを実行して、少なくとも1つのマージコミットを含め、結果を元の状態と比較してみてください。
Mladen B.

9

たとえばWindowsでNotepad ++を使用している場合:

CtrlAすべてを選択してから、DelまたはBackspace削除してCtrlS保存します。ファイルが空の場合、Gitはリベースを中止します。

CtrlCgitが実行されているコマンドプロンプトでを押して、現在のリベースコマンドを停止することもできます。次に、実行git rebase --abortして元に戻します。


これは、vimや他のエディターを使用しているかどうかに関係なく、この問題を解決する一般的な方法です。どうもありがとう!:)
Mladen B.

3

テキストエディタ画面ですべてのテキストを削除し、デフォルトで指定されたパスでファイルを保存します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.