disclaimer: *NIX 계열에서만 작동할 겁니다. 윈도용은 따로 작성해봐야 할듯 하네요.
아무데서나 다음을 실행한다.
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 # 음! 제대로 된 부모브랜치에서 시작했군
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하고 있음에 유의)
git where라고만 적었는데, 좀 고치면 좋을 거 같음.
git flow-from {브랜치명} # 주어진 브랜치의 base를 알려준다. 기본값은 현재 브랜치
git flow-to {브랜치명} # 주어진 브랜치의 base를 변경한다. 기본값은 현재 브랜치
정말 할일이 없으면 한번 좀더 해봐야지!