나는 conventional commits 표준을 따르고 있으며 스쿼시를 수행하고을 병합하기 위해 쉘 기능을 만들고 구문 분석 된 메시지로 변경 사항을 적용하여 코딩 속도와 커밋 일관성을 향상시키고 싶습니다.쉘 함수에서 인수를 구문 분석 한 다음 어떻게 다중 행 커밋을 수행 할 수 있습니까?
내 문제는입니다. 인수를 구문 분석 한 다음 결과를 커밋 메시지에 사용합니다.
내 실제 코드 :
function git_merge_squash() { git merge --squash "$1" shift msg= echo $'\n'"$*" | tr . \\n | tr - ' ' # echo $msg git commit -m $msg } alias gmrs=git_merge_squash
사용 예 :
$ gmrs f/my_branch Features.- Signup.-- Save hashed password asynchronously.-- Retrieve token.- Login.-- Retrieve token.- Logout.-- Destroy token
예상 결과 :
git merge --squash f/my_branch git commit -m " Features Signup Save hashed password asynchronously Retrieve token Login Retrieve token Logout Destroy token"
짐작할 수 있듯이 실제 코드에서 내 의견을 말한 echo
은 내가 원하는 메시지를 정확하게 출력합니다. 그러나 git commit -m
명령은 $msg
을 문자열로 사용합니다. -F
플래그로 파일 입력을 시뮬레이트하는 것과 같은 여러 옵션을 시도했지만 해결하지 못했습니다.
목표를 달성하려면 어떻게해야합니까? 미리 감사드립니다.
다 행인 경우 커밋 메시지에'\ n'도 추가해야한다고 생각합니다. –
'git commit -m "msg msg"'(msg var를 둘러싼 따옴표로)? – zigarn
그 해결책은 효과가 없었습니다. 어쨌든 고맙습니다. –