일반적으로 git 별칭은 단일 명령으로 제한됩니다.
git config --global alias.ci commit
그래서, git commit
당신은 이것을 할 수 있습니다git ci
하지만 여기에 함수를 삽입할 수도 있는 것 같습니다.
git config --global alias.up-sub '!f() { cd $1 && git checkout master && git pull && git submodule update --init --recursive; }; f'
이를 통해 전화를 걸 수 있습니다.git up-sub some-submodule
문제는 이것이 어떻게 작동하는가입니다. !f()
다른 어떤 상황에서도 이 구문을 본 적이 없습니다 .
답변1
일반 쉘 함수 정의 및 호출처럼 보입니다. 폭발음만 눈에 띄는데, git-config(1)
설명서를 빠르게 검색해 보면 설명이 나옵니다.
별칭 확장 앞에 느낌표가 붙는 경우 이는 쉘 명령으로 처리됩니다. 예를 들어, "alias.new = !gitk --all --not ORIG_HEAD"를 정의하고 "git new"를 호출하는 것은 쉘 명령 "gitk --all --not ORIG_HEAD"를 실행하는 것과 같습니다. 쉘 명령은 저장소의 최상위 디렉토리(반드시 현재 디렉토리일 필요는 없음)에서 실행됩니다.
강타가 없으면 git
하위 명령의 별칭이 지정됩니다.