많은 개발자들이 터미널로 zsh 을 이용합니다. 보통 zsh 을 이용하면 zsh git plugin 을 이용하곤 하는데요, 보통 .zshrc
파일을 보면 아래와 같이 zsh plugin 이 이미 설치되어 있는 모습을 볼 수 있습니다.
plugins=(
git
)
이 plugin 은 git 명령어를 짧게 쓸 수 있는 다양한 별칭들을 제공합니다. 이 별칭들을 활용하면 터미널에서 git 명령어를 입력하는 시간을 크게 줄일 수 있습니다.
실제로 제가 최근에 개발한 기록을 보면 아래와 같습니다.
플러그인을 활용하여 git 명령어를 입력하는 시간을 크게 단축했습니다.
플러그인이 제공하는 전체 별칭 목록은 여기서 확인할 수 있습니다.
우선 여러 옵션을 제외하고도 git의 대부분의 기능은 별칭으로 사용할 수 있습니다. 예시로 ga
는 git add
이고, gp
는 git push
, gst
는 git status
, gsw
는 git switch
입니다.
따라서 이거만 줄여도 많은 시간을 아낄 수 있습니다.
ga --all # git add --all
gsw -c feat/user # git switch -c feat/user
gc --all --message "temp" # git commit --all --message "temp"
여기에 더해서, 자주 사용하는 옵션들도 별칭으로 제공됩니다. 가령 gswc
는 gsw -c
를 줄여 쓴 것이고, gcam
은 git commit --all --message
를 줄여 쓴 것입니다.
적용하면 아래와 같이 쓸 수 있습니다.
gaa # git add --all
gswc feat/user # git switch -c feat/user
gcam "temp" # git commit --all --message "temp"
이런 식으로 총 200개 정도의 별칭이 제공됩니다.
아래는 제가 애용하는 명령어들 목록입니다.
gst
git status
입니다.glog
git log --oneline --decorate --graph
의 별칭입니다.glols
같은 걸 이용하면 더 예쁜 그래프를 보여주긴 하는데, 딱히 유용하게 쓰gsta
/ gstp
git stash push
, git stash pop
입니다.grhh
git reset --hard
입니다.grs
git restore
입니다.gcam
git commit --all --message
입니다.gcam "test"
이런 식으로 간단하게 모든 파일을 커밋할 수 있습니다.gca!
git commit --verbose --all --amend
와 동일하게 동작합니다.grbm
git rebase $(git_main_branch)
입니다.gswm
git switch $(git_main_branch)
입니다. 메인 브랜치로 이동합니다.gsw -
git switch -
입니다. 이전 브랜치로 이동합니다.gswc
git switch -c
입니다.gl
git pull
입니다. 정말 많이 쓰게 되는 커맨드입니다.git pull --rebase
를 하고 싶을 때가 있는데, 그럴 땐 gpr
하면 됩니다.gp
git push
입니다. 마찬가지로 정말 많이 사용하게 됩니다.gpf
git push --force-with-lease --force-if-includes
로 동작합니다.git push --force
와 같은 방식을 많이 이용하지만, 사실 이건 변경사항을 날려버리거나 깃을 꼬이게 할 수 있는 등 매우 위험합니다.gpf
로 간단하게 할 수 있습니다.그럼 몇 가지 예시 상황을 들어 보겠습니다.
gswm # git switch $(git_main_branch)
gl # git pull
gsw - # git switch -
grbm # git rebase $(git_main_branch)
gpf # git push --force-with-lease --force-if-includes
gaa # git add --all
gca! # git commit --verbose --all --amend
# 지금 있는 피쳐 브랜치에서 스크린샷을 찍고
gswm # git switch $(git_main_branch)
# 메인 브랜치로 이동했으니 스크린샷을 찍고
gsw - # git switch -
public/
폴더의 내용물들이 지 혼자 바뀌어 버려서 되돌리고 싶을 때grs public # git restore public
gwip # git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"
놀랍게도 모든 파일 add 하고 "--wip-- [skip ci]"
라는 커밋을 하는 명령어인데.. 저도 몇 번 안 써 봤습니다
gswm # git switch $(git_main_branch) # 메인브랜치 가서
gl # git pull # 코드 최신화땡기고
gl # git pull # 그냥 괜히 두번씩 하게 됩니다
gswc "feat/user" # git switch -c "feat/user" # 브랜치 분기
gcam "udpate zshrc" # git commit --all --message "update zshrc" # 커밋
gaa # git add --all # 파일 하나 덜 커밋했단 걸 발견
gca! # git commit --all --verbose --amend # 다시 커밋
gp # git push # 깃헙에 푸시
이렇게 zsh git plugin 이 제공하는 별칭들을 통해 깃 명령어를 더 빠르게 입력할 수 있습니다. 작은 차이로 보이지만 의외로 터미널에서 소스를 자주 건드리다 보면 생각보다 유의미한 생산성 차이가 생기게 되는데요, 어색하더라도 조금씩 연습해보면 어떨까요?
감사합니다!