git을 사용하다보면 종종 명령어를 치기 귀찮은 경우가 존재합니다.
현재 브랜치만 push하고 싶은데, 브랜치 명이 너무 길다던지... main에 리베이스를 해야하는데 넘어가서 pull 땡겨오기 귀찮다던지...
저만 그런가요..?
alias를 잘 사용하면 생산성 증대에도 큰 도움이 되는데요. 개인적인 생산성 증대를 위하여 사용하고 있는 별다줄 alias를 소개해보겠습니다.
alias list
- co = checkout
- checkout 명령어의 단축키로 co를 사용하고 있어요.
- 이 alias를 사용하면 git checkout 대신 git co를 입력하여 브랜치를 전환할 수 있습니다.
- 간단하지만, 7글자나 쓰기 귀찮아서(...) 만들었습니다.
- 자매품으로 cob(checkout -b)도 있습니다.
- 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을 사용하여 해당 브랜치로 전환합니다.
- 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를 사용하여 각 브랜치를 삭제합니다.
- 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를 사용하여 이전 브랜치로 전환합니다.
- po = "!CURRENT=$(git branch —show-current) && git push origin $CURRENT"
- 현재 브랜치를 원격 저장소로 푸시합니다. 작업 중인 브랜치만 푸시하고 싶은데, 브랜치 명을 쓰기 귀찮을 때 사용합니다.
- 스크립트는 git branch —show-current를 사용하여 현재 브랜치를 확인하고, 임시 변수 $CURRENT에 저장합니다.
- git push origin $CURRENT를 사용하여 현재 브랜치를 원격 저장소로 푸시합니다.
'기타' 카테고리의 다른 글
Kafka 메세지를 안정적으로 다루는 방법 (Transaction Outbox Pattern) (1) | 2024.10.13 |
---|---|
gRPC 더욱 효율적으로 Load Balancing하기 / Client side load balancing (0) | 2022.03.12 |
$0.005 per Elastic IP address not attached to a running instance per hour (2) | 2021.08.04 |
Grafana '/var/lib/grafana/plugins': Permission denied 오류 해결 (1) | 2021.02.06 |
Detection Algorithm (0) | 2021.01.09 |
댓글