Bash 스크립트에서 git Interactive rebase 사용

Bash 스크립트에서 git Interactive rebase 사용

다음과 같이 이전 커밋에 미단계 변경 사항을 적용하기 위해 자주 수행하는 일련의 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를 재설정하는 것을 잊지 마십시오.

관련 정보