본문 바로가기
코딩해보니/Git

[Git_27] 브랜치(Branch) 만들기

by 위시랜 2022. 12. 27.

브랜치 만들기(branch)
브랜치 만들기(branch)

브랜치(Branch) 만들기

브랜치는 작업자라고 생각하기로 하고, 브랜치는 개수에 제한 없이 만들 수 있습니다.

브랜치를 만들 때는 branch 명령어를 사용하며, 다음과 같은 형식을 가집니다.

# 브랜치 만들기
$ git branch <브랜치 이름> <커밋ID>

branch 명령어 뒤에 브랜치 이름을 입력합니다.

작업자에게 이름을 붙여주는 격입니다.

<커밋 ID>는 입력하지 않아도 됩니다.

<커밋 ID>는 만드는 브랜치에게 시작할 작업 지점을 지정해 주는 것입니다.

<커밋 ID>를 입력하지 않으면, 현재 HEAD 포인터가 적용되어 브랜치가 만들어집니다.

 

현재 실습을 통해 다섯 번의 커밋을 한 상태에서

커밋 ID를 포함해 브랜치와 저장소의 관계를 조금 더 들여다보면 다음과 같다고 할 수 있습니다.

커밋 이력과 master 브랜치와의 관계
커밋 이력과 master 브랜치와의 관계

현재는 master 브랜치만 존재하고,

HEAD 포인터는 마지막 다섯번째 커밋을 가리키고 있으며,

이 HEAD는 master 브랜치의 것입니다.

 

여기서, hotfix 라는 이름으로 브랜치를 만들기 위해

$ git branch hotfix 라고 한다면,

$ git branch hotfix 94d53f0의 결과와 같고

hotfix 브랜치가 만들어지면 다음과 같은 그림으로 나타낼 수 있습니다.

hotfix 브랜치 생성 후의 커밋 이력
hotfix 브랜치 생성 후의 커밋 이력

이때의 hotfix 브랜치는 master 브랜치와 HEAD가 같습니다.

hotfix에게 작업의 시작점을 다섯 번째 커밋 지점이라는 것으로 지정되어졌습니다.

 

만약, 세번째 커밋을 기준으로 브랜치를 만들고 싶다면,

세 번째 커밋 ID인 14ba2c2 를 이용해 $ git branch hotfix 14ba2c2 라고 하면 됩니다.

이렇게 생성한 hotfix 브랜치는 다음과 같이 HEAD가 master와 다르게 됩니다.

특정 커밋 지점에서 시작하는 브랜치 hotfix 생성 예
특정 커밋 지점에서 시작하는 브랜치 hotfix 생성 예

그럼, 실제 그런지 실습을 통해 확인해 보겠습니다.

최초 커밋을 다섯번 한 상태에서 hotfix라는 이름의 브랜치를 만들어 보겠습니다.

hotfix 브랜치 만들기
hotfix 브랜치 만들기

$ git branch hotfix 라고 실행한 후 정상적으로 생성이 되었다면 별도로 나오는 메시지는 없습니다.

 

그런 다음, $ git branch 라고 입력한 것을 볼 수 있습니다.

$ git branch 라고만 하면 현재 브랜치 목록을 다음과 같이 확인할 수 있습니다.

브랜치 목록 확인하기
브랜치 목록 확인하기

hotfix가 생성된 것을 확인할 수 있으며,

초록색으로 * 표시와 함께 master가 확인됩니다.


별(*) 표시와 녹색으로 표시되는 브랜치가 현재 자신이 작업하고 있는 브랜치를 나타냅니다.

또한, -v 옵션 또는 --verbose 옵션과 함께 사용하면

HEAD 포인터의 해시값과 HEAD 커밋의 메시지까지 좀 더 상세한 목록을 확인할 수 있습니다.


다음과 같이 branch 명령어를 -v 옵션과 함께 사용하는 것입니다.

git branch -v 실행 화면
git branch -v 실행 화면

소스트리와 함께 사용할 경우엔 몰라도 되겠으나,

CLI에 익숙한 경우 알아두면 유용합니다.

# 브랜치 목록 확인하기
$ git branch

# 브랜치 목록을 상세히 확인하기
# -v 옵션은 --verbose 와 동일함
$ git branch -v

소스트리(Sourcetree)에서 브랜치 만들기

이렇게 생성된 브랜치는 소스트리에서도 확인이 가능합니다.

다음 화면과 같이 소스트리 왼쪽 메뉴 영역에 “브랜치” 항목에 hotfix가 새롭게 나타난 것을 확인할 수 있습니다.

소스트리(Sourcetree)에서 브랜치 목록 확인하기
소스트리(Sourcetree)에서 브랜치 목록 확인하기

o 표시와 함께 진하게 표시된 브랜치가 현재 작업 중인 브랜치를 의미합니다.

또한, 히스토리에 각 브랜치의 HEAD가 표시되는 것을 확인할 수 있으며,

앞서 예상했던 바와 같이 master와 hotfix 브랜치 모두 다섯 번째 커밋을 HEAD로 하고 있음을 알 수 있습니다.

 

마찬가지로, 소스트리에서도 쉽게 브랜치를 만들 수 있습니다.

소스트리에서 브랜치를 생성하기 위해서, 브랜치 탭에서 master를 선택합니다.

master 브랜치가 활성화된 상태
master 브랜치가 활성화된 상태

위와 같이 master가 굵은 글씨로 되어 있고, 앞에 o 와 같이 동그란 아이콘이 표시되어 있어야 합니다.

hotfix 브랜치가 활성화 상태
hotfix 브랜치가 활성화 상태

만약 위와 같이 다른 브랜치가 선택되어 있다면,

master 브랜치를 더블 클릭해서 master를 선택할 수 있습니다.

 

master 브랜치를 선택한 상태에서

오른쪽 커밋 이력에서 브랜치를 만들고자 하는 커밋 지점에

마우스를 가져가서 마우스 오른쪽 버튼을 클릭하면

팝업 메뉴가 나오는데, “브랜치…” 메뉴를 클릭합니다.

소스트리(Sourcetree)에서 브랜치 만들기
소스트리(Sourcetree)에서 브랜치 만들기

그럼, 다음과 같은 브랜치 생성 창이 열립니다.

소스트리(Sourcetree)에서 브랜치 만들기
소스트리(Sourcetree)에서 브랜치 만들기

“새 브랜치” 항목에 브랜치 이름을 입력하고, 아래에 [브랜치생성] 버튼을 클릭하면 생성이 됩니다.

생성 시에 여기에 체크가 되어 있으면 생성한 브랜치를 바로 선택되게 됩니다.

 

또는 다음 화면과 같이 소스트리의 상단 메뉴에서

“브랜치” 메뉴를 통해 생성할 수 있으나,

커밋 항목을 다시 지정해야 하므로 커밋 지점에서 바로 브랜치를 생성하는 것이 편리합니다.

소스트리(Sourcetree)에서 브랜치 메뉴
소스트리(Sourcetree)에서 브랜치 메뉴

브랜치를 생성하면 다음과 같이 좌측 “브랜치”탭에 생성이 되고 선택되어 있는 것을 알 수 있습니다.

소스트리(Sourcetree)에서 브랜치 만들기
소스트리(Sourcetree)에서 브랜치 만들기

생성할 때

새 브랜치 체크아웃
새 브랜치 체크아웃

"새 브랜치 체크아웃" 옵션에 체크를 했기에 작업 브랜치가 바로 변경되어졌습니다.

“체크아웃”에 대해서는 다시 학습할 것이기 때문에 여기서는 그냥 넘어가겠습니다.

 

터미널로 돌아가 $ git branch로 목록을 확인해도 같은 결과를 확인할 수 있습니다.

Git Bash에서 브랜치 목록 확인하기
Git Bash에서 브랜치 목록 확인하기


지금까지 hotfix와 testbranch1이라는 브랜치 2개를 만들었습니다.

이제 firstrepo는 다음 그림과 같이 구성되어졌습니다.

현재 저장소 firstrepo의 Git 영역 상태
현재 저장소 firstrepo의 Git 영역 상태

이제는 Git영역에 작업자 두 사람이 더 생겼다고 생각할 수 있습니다.

 

hotfix, testbranch1 2개의 브랜치도 master와 같은 커밋 HEAD를 바라보고 있는 브랜치가 되는 것입니다.

커밋 이력과 생성된 브랜치와의 관계
커밋 이력과 생성된 브랜치와의 관계

지금까지 브랜치를 만들어 보면서 Git을 살펴봤습니다.

이렇게 생성된 브랜치를 이동하며 작업을 할 수 있습니다.

다음엔 브랜치를 이동하며 작업하는 것을 확인해 보겠습니다.

 

감사합니다.

댓글