다음과 같이 이전 커밋에 미단계 변경 사항을 적용하기 위해 자주 수행하는 일련의 Git 작업을 자동화하는 bash 스크립트를 만들고 싶습니다.
- 변경 사항을 숨깁니다.
- 대화형 리베이스를 입력하세요.
- 문제가 있는 커밋을 편집합니다.
- 그것에 숨김을 적용하십시오.
- 리베이스를 완료합니다.
문제는 이들 중 일부가 Vim을 열고 bash 스크립트를 사용하여 파일을 편집/작성하는 방법을 잘 모르겠다는 것입니다. 나는 이것을 수동으로하고 싶지 않습니다.
bash를 사용하여 Vim에서 편집을 자동화하는 방법이 있나요? Vim이 기본 편집기가 아닌 경우를 다루는 더 좋은 방법이 있나요?
답변1
내 생각에 VIM은 항상 git에서 설명 메시지를 입력할 때 열리는 것 같습니다. "-m" 옵션을 통해 관련 git 명령에 메시지를 제공하여 이 문제를 피할 수 있습니다.
예를 들면 다음을 참조하세요. git stash --help
...
git stash store [-m|--message <message>] [-q|--quiet] <commit>
...
의견을 명확히 한 후 추가 정보:
VIM에는 비대화형(raw ex) 모드인 "vim -e"가 있습니다. bash에서 "ex" 명령을 실행해도 작동합니다. 하지만 여전히 vim 명령을 파이프로 연결해야 합니다. git rebase 호출 전에 $EDITOR env를 남용하면 트릭을 수행할 수 있습니다(예: 자동 모드의 경우 -s).
export EDITOR="cat commands.vim | vim -es"
그러나 이미 $EDITOR env를 남용하고 있다면 다른 bash 스크립트를 작성하여 파일 수정을 수행하고 이를 편집기로 사용할 수도 있습니다.
export EDITOR="/path/to/your/script/"
어쨌든 나중에 $EDITOR를 재설정하는 것을 잊지 마십시오.