대화식 편집 중 Vim 내부에서 git rebase를 중단하는 방법


138

대화식 리베이스를 수행 할 때 (예 :

git rebase -i HEAD~3

rebase 대화식 편집기 (필자의 경우 vim)가 열리고 rebase에 대한 커밋을 편집 할 수 있습니다.

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

이제 rebase를 중단하고 rebase를 사용 :q하여 vim을 종료하기로 결정하면 어쨌든 시작됩니다. 1.9.0.msysgit.0Windows에서 git 버전 을 사용 하고 있습니다.

물론 모든 pick줄을 삭제할 수는 있지만 더 긴 기록을 다시 작성하면 할 일이 많습니다. 다른 방법이 있습니까?

rebase 대화식 편집기 (vim)를 종료하고 rebase를 중단하려면 어떻게해야합니까?


메모장과 같은 다른 편집기를 사용 하시겠습니까? 그렇다면, 이에 대한 해결책이 있습니다
— Steven Penny

5
git rebase --abort
— vanduc1102

@ vanduc1102 저에게 효과적입니다.
— C Bauer

답변:


258

오류 코드와 함께 편집기를 종료하면 리베이스가 중단됩니다.

vim에서 오류 코드로 종료하려면

:cq

참조 여기 와 vimdoc 여기 .


6
타이핑 감소, 동일한 결과
— Zach Posten

44

파일에서 주석이 아닌 모든 행을 삭제하십시오. 그런 다음 기본 제공된 경로에 저장하고 편집기를 종료하십시오.

결과적으로 git 은이 rebase에서 아무것도하지 않습니다.

vim에서 모든 줄을 삭제하려면

:%d|x

그런 다음 저장하고 종료하십시오.

Vim에서 파일의 모든 줄을 삭제

Vim 편집기를 종료하는 방법?

VIM-같은 줄에 여러 명령


병합 커밋의 경우에는 해당되지 않습니다. 대화식 리베이스를 수행하여 하나 이상의 병합 커밋을 포함시키고 결과를 원래 상태와 비교하십시오.
— Mladen B.

9

예를 들어 Windows에서 메모장 ++을 사용하는 경우 :

CtrlA다음, 모든 것을 선택 Del하거나 Backspace삭제하고 CtrlS저장합니다. 파일이 비어 있으면 Git은 리베이스를 중단합니다.

CtrlC현재 rebase 명령을 중지하기 위해 git이 실행중인 명령 프롬프트에서 적중 할 수도 있습니다 . 그런 다음 실행 git rebase --abort하여 되돌립니다.


이것은 vim이나 다른 편집기를 사용하더라도이 문제를 해결하는 일반적인 방법입니다. 고마워요! :)
— Mladen B.

3

텍스트 편집기 화면에서 모든 텍스트를 삭제 한 다음 기본 제공된 경로로 파일을 저장하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.