bashrc script 작성 관련 질문입니다.

fefire의 이미지

간단한 script를 작성하려고 하는데 정상동작을 하지 않아 문의드립니다.
개발 툴로 git을 사용하고 있는데 git push 명령어에 현재 개발중인 branch를 적어야 하는데 gerrit에 올리기 때문에
git push origin HEAD:refs/for/branch_name 이렇게 적어야 해서

bashrc에 alias를 push로 빠꿔서 사용하려고 다음과 같이 작성했는데 동작을 하지 않습니다.

alias push='git push origin HEAD:refs/for/$1'

보통 branch명에 @가 앞에 들어가는데 혹시 이게 문제가 되나요?

ymir의 이미지

alias 에서 $1 에는 push 의 argument 가 아니라 현재 shell 의 argument 가 그대로 전달됩니다.
push branch_name 이라고 치면, git .../$1 branch_name 이라고 입력한 것과 같기 때문에..
git 명령이 제대로 동작하지 않을겁니다. alias 대신 function 으로 바꾸세요.

function push()
{
  [ -n "$1" ] && git push origin HEAD:refs/for/$1
}

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

fefire의 이미지

말씀하신대로 하니깐 먼가 오류가 나서 아래처럼 바꿔서 했더니 되네요^^
답변 감사드립니다.
function push()
{
git push origin HEAD:refs/for/$1;
}