간단한 git add / commit / push에 대한 매개 변수로 별칭을 만들려고합니다.
함수가 별칭으로 사용될 수 있다는 것을 보았 기 때문에 시도했지만 만들지 못했습니다 ..
내가하기 전에 :
alias gitall="git add . ; git commit -m 'update' ; git push"
하지만 내 커밋을 수정할 수 있기를 원합니다.
function gitall() {
"git add ."
if [$1 != ""]
"git commit -m $1"
else
"git commit -m 'update'"
fi
"git push"
}
(나는 그것이 끔찍한 자식 연습이라는 것을 안다)
답변
인수 *로 별칭을 만들 수 없습니다. 함수 여야합니다. 함수가 가깝습니다. 전체 명령 대신 특정 인수를 인용하고 []
.
gitall() {
git add .
if [ "$1" != "" ] # or better, if [ -n "$1" ]
then
git commit -m "$1"
else
git commit -m update
fi
git push
}
* : 대부분의 셸은 별칭에서 인수를 허용하지 않습니다. csh와 파생물이 허용한다고 생각하지만 어쨌든 사용해서는 안됩니다 .
답변
어떤 이유로 든 매개 변수와 함께 별칭을 정말로 사용해야하는 경우 별칭에 함수를 포함하고 즉시 실행하여 해킹 할 수 있습니다.
alias example='f() { echo Your arg was $1. };f'
이 접근 방식은 .gitconfig 별칭에서 많이 사용되었습니다.
답변
.zshrc 파일에서이 함수를 사용했습니다.
function gitall() {
git add .
if [ "$1" != "" ]
then
git commit -m "$1"
else
git commit -m update # default commit message is `update`
fi # closing statement of if-else block
git push origin HEAD
}
여기에서 git push origin HEAD
현재 분기를 원격으로 푸시 할 책임이 있습니다.
명령 프롬프트에서 다음 명령을 실행하십시오. gitall "commit message goes here"
gitall
커밋 메시지없이 실행 update
하면 함수가 말한대로 커밋 메시지가 표시됩니다 .
답변
"git add ."
그리고 그 사이의 다른 명령은 "
bash의 문자열 일뿐 "
입니다.
[ -n "$1" ]
if body에서 대신 사용하는 것이 좋습니다.
답변
나는 받아 들인 대답 (Kevin ‘s)을 시도했지만 다음과 같은 오류가 발생했습니다.
defining function based on alias `gitall'
parse error near `()'
따라서 git 문제 에 따라 구문을 이것으로 변경 했으며 작동했습니다.
function gitall {
git add .
if [ "$1" != "" ]
then
git commit -m "$1"
else
git commit -m update
fi
git push
}