개발/기타

Git Alias를 설정해보자: 깃 명령어를 쉽고 빠르게 사용하는 방법

JonghwanWon 2022. 7. 29. 01:31

개발자로서 Git은 매우 중요한 부분입니다. Git과 상호작용 하지 않고 하루를 보낼 수는 없습니다.

일반적으로 터미널에서 Git을 실행하거나 Sourcetree와 같은 GUI도구를 사용합니다.

 

우리는 Git의 명령어를 기억하고, 작성하는 것이 어렵고 소모적인 것을 알고 있습니다.

 

GUI툴을 사용한다면 Git 명령어를 외울 필요가 없어 정말 쉽게 사용할 수 있습니다.

직관적으로 보이고 또 강력한 부가기능들도 포함되어 있습니다.

 

하지만 터미널에서만 Git을 실행하는 것을 좋아하는 fan이 분명 존재합니다.

 

터미널 fan을 위한 효율적인 어떤 방법이 없을까요?

 

우리는 Git Alias를 설정해 Git 명령어를 별칭으로 저장해 Git을 좀 더 쉽고 빠르게 사용할 수 있습니다.

그럼 Git Alias는 어떻게 설정할 수 있을까요?

 

아래는 Alias를 만드는 예입니다.

$ git config --global alias.co checkout
$ git config --global alias.br branch

또는 텍스트 편집기를 열어 추가해 줄 수도 있습니다.

$ open -e ~/.gitconfig
[alias]
  co = checkout
  br = branch

$ git co "branch"
$ git br

설정 후 터미널에서 실행해보면 설정 한 alias가 잘 동작하는 것을 확인할 수 있습니다!

이렇게 쉽게 새로운 명령어들을 등록해 다양한 작업을 쉽고 빠르게 그리고 편리하게 사용할 수 있습니다.

 

제가 설정해두고 사용하는 alias들을 간단히 소개하며 글을 마칩니다.


Pull Request 관련 alias

pr = "!f() { git fetch -fu ${2:-$(git remote |grep ^upstream || echo origin)} refs/pull/$1/head:pr/$1 && git checkout pr/$1; }; f"

pr 명령어는 pr을 로컬에서 받아서 보고 싶을 때 사용합니다.

git pr [pull request 번호]를 입력하면 pr/[pull request 번호] 브랜치로 해당 pr을 받아 checkout 합니다.

pr-current = "!f() { git pull upstream refs/pull/$1/head; }; f"

pr-current 명령어는 현재 checkout 되어있는 branch로 pull 받을 때 사용합니다.

git pr-current [pull request 번호]를 입력하면 현재 checkout 된 branch로 입력한 pr을 pull을 실행합니다.

pr-clean = "!git for-each-ref refs/heads/pr/* --format='%(refname)' | while read ref ; do branch=${ref#refs/heads/} ; git branch -D $branch ; done"

pr-clean 명령어는 pr 명령어로 받아온 pr/* 브랜치들을 모두 제거하는 데 사용합니다.

gone = ! "git fetch -p && git for-each-ref --format '%(refname:short) %(upstream:track)' | awk '$2 == \"[gone]\" {print $1}' | xargs -r git branch -D && git fetch --multiple upstream origin --prune"

gone 명령어는 merge 후 제거된 branch들을 모두 정리할 때 사용합니다.

git gone을 입력하면 upstream에 merge 된 branch들이 모두 제거합니다.


branch 관련 alias

puo = "!f() { git push --set-upstream origin $(git symbolic-ref --short HEAD); }; f"

puo 명령어는 checkout 되어있는 branch의 이름과 같은 branch를 origin에 생성하고 추적하도록 합니다.

ck = "!f() { git checkout -b $1 && git puo; }; f"

ck 명령어는 새로운 브랜치를 생성할 때 사용합니다.

git ck [branch name]를 입력하면 [branch name]의 branch가 생성되고 origin에 push 하고 추적합니다.

del = "!f() { git branch -D $1 && git push origin --delete $1; }; f"

del 명령어는 로컬 및 origin의 브랜치를 제거할 때 사용합니다.

git del [branch name]을 입력하면 [branch name]origin/[branch name]이 제거됩니다.