web-dev-qa-db-ja.com

インタラクティブな編集中にvim内部からgit rebaseを中止する方法

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

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)
....

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

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

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

124
René Link

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

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

:cq

here およびvimdoc here を参照してください。

218
Telmo Costa

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

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

Vimのすべての行を削除するには、次を使用できます。

:%d|x

その後、保存して終了します。

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

Vimエディターの終了方法

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

43
Steven Penny

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

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

また、ヒットする可能性があります CtrlC gitが実行されているコマンドプロンプトで、現在のリベースコマンドを停止します。次に、git rebase --abortを実行して元に戻します。

8
CoDEmanX

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

3
mcandre