본문 바로가기
기타

git 별다줄 alias를 소개합니다.

by Limm_jk 2023. 6. 18.

git을 사용하다보면 종종 명령어를 치기 귀찮은 경우가 존재합니다.

현재 브랜치만 push하고 싶은데, 브랜치 명이 너무 길다던지... main에 리베이스를 해야하는데 넘어가서 pull 땡겨오기 귀찮다던지...

저만 그런가요..?

 

alias를 잘 사용하면 생산성 증대에도 큰 도움이 되는데요. 개인적인 생산성 증대를 위하여 사용하고 있는 별다줄 alias를 소개해보겠습니다.

 

alias list

  1. co = checkout
    • checkout 명령어의 단축키로 co를 사용하고 있어요.
    • 이 alias를 사용하면 git checkout 대신 git co를 입력하여 브랜치를 전환할 수 있습니다.
    • 간단하지만, 7글자나 쓰기 귀찮아서(...) 만들었습니다.
    • 자매품으로 cob(checkout -b)도 있습니다.
  2. pr = "!f() { git fetch -fu upstream refs/pull/$1/head:pr/$1 && git checkout pr/$1; }; f"
    • Pull Request를 가져오고 해당 브랜치로 전환하는 작업을 git pr <pr_number>와 같은 형식으로 사용할 수 있습니다.
    • 스크립트 내부의 $1은 스크립트에 전달된 첫 번째 인수를 나타냅니다. 즉 pr number라고 볼 수 있습니다.
    • 스크립트를 실행하면 git fetch를 사용하여 upstream 저장소에서 pr(head)를 가져오고, git checkout을 사용하여 해당 브랜치로 전환합니다.
  3. 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을 사용하여 pr 브랜치를 잔뜩 가져오다보면 감당이 안될 때가 있습니다. 그렇기 때문에 주기적으로 지워줘야 하는데요. 이를 위하여 pr-clean을 이용하여 모든 pr 브랜치를 제거합니다.
    • 스크립트는 git for-each-ref를 사용하여 refs/heads/pr/* 패턴에 맞는 모든 브랜치를 찾습니다.
    • 이후 git branch -D를 사용하여 각 브랜치를 삭제합니다.
  4. pu = "!CURRENT=$(git branch —show-current) && git stash && git checkout $1 && git pull upstream $1 && git checkout $CURRENT"
    • 현재 브랜치를 임시로 저장하고, 지정된 브랜치로 전환한 후 upstream 저장소에서 변경사항을 가져옵니다. 그리고 명령어를 실행한 브랜치로 다시 돌아옵니다. git pu <변경사항을 가져올 브랜치 명>과 같은 형태로 사용할 수 있습니다.
    • 스크립트는 git branch —show-current를 사용하여 현재 브랜치를 확인하고, 임시 변수 $CURRENT에 저장합니다.
    • 이후 git stash를 사용하여 현재 작업 내용을 임시로 저장하고, git checkout $1로 입력받은 브랜치로 전환합니다.
    • git pull upstream $1을 사용하여 upstream 저장소의 해당 브랜치에서 변경사항을 가져옵니다.
    • 마지막으로 git checkout $CURRENT를 사용하여 이전 브랜치로 전환합니다.
  5. po = "!CURRENT=$(git branch —show-current) && git push origin $CURRENT"
    • 현재 브랜치를 원격 저장소로 푸시합니다. 작업 중인 브랜치만 푸시하고 싶은데, 브랜치 명을 쓰기 귀찮을 때 사용합니다.
    • 스크립트는 git branch —show-current를 사용하여 현재 브랜치를 확인하고, 임시 변수 $CURRENT에 저장합니다.
    • git push origin $CURRENT를 사용하여 현재 브랜치를 원격 저장소로 푸시합니다.

댓글