개발/Git

[Git] 터미널에 Git branch 표시

growing-dev 2023. 1. 5. 23:25

Git branch의 의미

Git에서 branch는 생각보다 매우 중요하며 필수적이다.

아래 Git 원리 강의에서 branch의 의미에 대해서 충분히 이해해야 한다.

https://growing-dev101.tistory.com/8

 

[Git] 원리 강의 추천

Git 이 그렇게 중요한가? 내가 생각했을 때 소프트웨어 개발에서 가장 중요한 것이 뭐냐 라고 했을 때 (C언어와 같은 근본적인 언어를 제외하고서) 망설임 없이 Git 이라고 할 것이다. 하지만 막상

growing-dev101.tistory.com

branch가 지정되지 않고 HEAD가 특정 commit을 그대로 가리키는 상태는 detached HEAD 상태이다.

 

Detached HEAD란?

보통 브랜치는 특정 commit을 가리키고 HEAD가 이 브랜치를 가리킨다. HEAD -> 브랜치 -> commit 순서로 commit을 가리키는 상태를 ‘attached HEAD’ 상태(state)라고 한다. 그리고, Detached HEAD란 HEAD가 브랜치를 통해 간접적으로 commit을 가리키지 않고, 직접 커밋을 가리키는 것을 말한다.

이런 상태라면 새로 브랜치를 만들어야 하며 checkout -b 옵션을 통해 만들 수 있다.

git checkout -b <branch name>

 

Git branch 표시

터미널에서 git branch를 표시하도록 하면 실수를 방지하고 직관적으로 현재 브랜치가 어디인지 알 수 있어서 매우 편리하다.

~/. bashrc나 ~/. profile에 아래와 같이 추가하면 된다.

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
export PS1="\e[01;32m\u@\h \[\e[34m\]\w\[\e[91m\]\$(parse_git_branch)\[\e[00m\]$ "
 

이후 터미널을 재시작하거나 source ~/.bashrc / source ~/.profile로 적용한다.

아래와 같이 my_repo2_test 라는 브랜치를 가리키고 있고 터미널 창에 빨간색으로 my_repo2_test가 항상 붙어있다.

 

결론

Git alias와 마찬가지로, Git을 잘 활용하기 위한 팁들 중 하나로, profile에 추가해 놓으면 편리하게 사용할 수 있고 실수를 예방할 수 있어서 좋은 것 같다.

반응형