(git flow) 이 기능브랜치 어디서 딴 것인지 알아내기

eojin·2022년 6월 22일
0

1분 코드 스니펫

목록 보기
6/6

disclaimer: *NIX 계열에서만 작동할 겁니다. 윈도용은 따로 작성해봐야 할듯 하네요.

tl;dr

아무데서나 다음을 실행한다.

git config --global alias.where 'config gitflow.branch.$(git symbolic-ref --short HEAD).base'

그 다음 Git Flow 사용 중인 Git 저장소에서 특정 기능 브랜치 체크아웃을 하고 다음을 실행하여 확인한다.

$ git status
On branch feature/ABC-1231/ABC-1275-foobar

$ git where
feature/ABC-1231/main # 음! 제대로 된 부모브랜치에서 시작했군

anatomy: 약간의 설명

git symbolic-ref --short HEAD

지금 브랜치 이름을 간소하게(즉 gitflow config가 사용하는 형태로) 출력한다.

git config gitflow.branch.브랜치명.base

기본적으로 이 명령으로 "이 기능/핫픽스/릴리즈 브랜치가 어디서 시작한 것이지?"를 알아낸다.
일반적인 Git Flow는 이걸 알 필요가 없다. 예컨대 모든 기능은 develop에서 시작하니까. 하지만 Git Flow를 응용해서 쓰고 있다면 — 그래서 어떤 기능브랜치가 develop 이외의 브랜치에서 시작할 수도 있다면 — 이걸 틀리지 않도록 해야 한다.

Git-Flow가 feature/hotfix 등의 base를 저장하는 방법은 config를 활용하는 것이다.
.git/config 파일을 열어서 임의로 고치면 그게 그대로 반영된다.
생각보다 로켓 사이언스가 아님.

git config --global alias.where '!어쩌구저쩌구'

전역 Git 별칭 명령을 작성한다. 이때 !로 시작하는 이유는, alias.where에 할당할 명령문이 온전한 기존 Git 명령이 아니기 때문이다. (문자열 출력을 concat하고 있음에 유의)

to do

git where라고만 적었는데, 좀 고치면 좋을 거 같음.

git flow-from {브랜치명} # 주어진 브랜치의 base를 알려준다. 기본값은 현재 브랜치
git flow-to {브랜치명} # 주어진 브랜치의 base를 변경한다. 기본값은 현재 브랜치

정말 할일이 없으면 한번 좀더 해봐야지!

profile
4년차 PHP 개발자입니다.

0개의 댓글