본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
Section 11.3: 고급 별칭(alias)들
git 의 alias 는 선언시에 ! 를 앞에 붙임으로써 git 명령어 외의 명령어들과 전체 sh shell 의 문법까지도 사용할 수가 있다.
~/.gitconfig 파일에 다음과 같이 입력한다:
[alias]
temp = !git add -A && git commit -m "Temp"
이러한 ! 를 접두어로 하는 alias 선언에서 전체 shell 문법이 사용가능하다는 것은 커맨드라인상의 파라미터 등을 활용하는 shell function 을 통해 다양하고도 더욱 복잡한 alias 기능을 만들 수 있다는 것을 의미한다:
[alias]
ignore = "!f() { echo $1 >> .gitignore; }; f"
위 alias 예제는 f 라는 이름의 함수를 선언하며, 실행시 alias 에 전달되는 모든 파라미터들을 해당 함수에서 사용 가능하도록 한다.
만약 git ignore .tmp/
와 같은 명령을 실행한다면, 사용자의 .gitignore 파일에 ".tmp/" 가 추가될 것이다.
사실, 이렇듯 git 이 $1, $2, 등의 변수를 제공해 주어 사용자가 이를 위해 따로 특별한 함수를 선언할 필요가 없다는 점은 매우 편리하다. (그러나 alias 선언에서 실제 이러한 변수들을 사용한다 하더라도, git 이 명령줄 끝에 파라미터를 추가할 것이기 때문에 가장 마지막에 더미 커맨드를 추가해야 한다는 점을 염두에 두어야 한다.)
또한 이렇게 ! 를 접두어로 하는 alias 들을 실행시, 현재 디렉토리는 더 깊이 들어가 있을지라도 명령 실행은 checkout 된 git 저장소의 루트 디렉토리에서 실행될 것이라는 점에 유의하라. 이러한 특성을 이용하면 저장소의 루트 디렉토리에서 명령을 실행하고자 할때 cd
를 통해 디렉토리를 명시적으로 이동하지 않아도 되어 편리하다.
[alias]
ignore = "! echo $1 >> .gitignore"
역주: 위 예제 실행시 이전 단락에서 설명한 것처럼 $1 에 해당하는 파라미터가 명령줄 끝에 붙게되어 실제 .gitignore 에 파라미터가 반복되어 추가되는 것을 확인할 수 있습니다.
[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)
'번역 > Git Notes for Professionals' 카테고리의 다른 글
11.5: 브랜치를 그래프 형태로 예쁘게 나타내어 로그 출력하기 (0) | 2019.10.29 |
---|---|
11.4: 추적(track) 중인 파일을 일시적으로 ignore 처리하기 (0) | 2019.10.29 |
11.2: 기존 별칭(alias) 들의 목록을 표시하거나 검색하기 (0) | 2019.10.25 |
11.1: 간단한 별칭(alias)들 (0) | 2019.10.25 |
10.13: 커밋의 작성자 정보를 수정(amend) 하기 (0) | 2019.10.24 |