'Git' 시리즈Git 정리 - 버전 관리 - Branch - 기초

김학진

@mildsalmon

흔치않고, 진귀하다.

브랜치(Branch)

버전 관리 시스템에서는 나무가 가지에서 새 줄기를 뻗듯이 여러 갈래로 퍼지는 데이터 흐름을 가리키는 말로 사용.
분기점이라고 생각하면 된다.

브랜치 기능

깃으로 버전 관리를 시작하면 기본적으로 master라는 브랜치가 만들어진다.
사용자가 커밋할 때마다 master 브랜치는 최신 커밋을 가리킨다.
브랜치는 커밋을 가리키는 포인터와 비슷하다고 생각.

새 브랜치를 만들면 기존에 저장한 파일을 master 브랜치에 그대로 유지하면서 기존 파일 내용을 수정하거나 새로운 기능을 구현할 파일을 만들 수 있다.
이렇게 master 브랜치에서 뻗어 나오는 새 브랜치를 만드는 것을 분기(branch)라고 한다.

새 브랜치에 있던 파일을 원래 master 브랜치에 합칠 수 있다.
분기했던 브랜치를 master 브랜치에 합치는 것을 병합(merge)한다고 한다.

브랜치 활용

아래는 깃 플로우를 설명하는 사진이다.
브랜치는 이렇게 사용하는구나 하고 넘어가자.

브랜치 만들기

브랜치 확인하기
git branch

master 브랜치는 저장소를 만들 때 기본적으로 만들어진다.

새로운 브랜치 만들기
git branch "브랜치 이름"

master 앞의 *는 master 브랜치에서 작업하고 있다는 뜻이다.

커밋 로그를 확인해보면,
(HEAD -> master, show)로 바뀌었다.
저장소에 master, show 2개의 브랜치가 있고,
HEAD -> master이므로 현재 작업 중인 브랜치는 master 브랜치라는 의미이다.

이런 모습이다.

브랜치 사이 이동하기(git checkout)

master 브랜치에서 test3.txt 파일을 새로 만들고 커밋을 했다.
로그에 master 브랜치는 최신 커밋을 가리킨다.
하지만 show2 브랜치와 show 브랜치는 이전 커밋인 a"를 가리킨다.

git checkout (이동할 브랜치 이름)

git checkout을 사용하면 master 브랜치에서 만든 master commit은 사라지고 a" 커밋을 최신 커밋으로 가리킨다.
master commit에서 만든 test3.txt 파일도 없다.

새 브런치에서 커밋하기

각 브랜치의 커밋 함께 보기
git log --oneline --branches

각 브랜치의 커밋을 같이 볼 수 있다.

git log --oneline --branches --graph

각 브랜치와 커밋의 관계를 그래프 형태로 볼 수 있다.

브랜치 사이의 차이점 알아보기

브랜치 이름 사이에 마침표 두개(..)를 넣으면 브랜치 간의 차이점을 쉽게 확인할 수 있다.
마침표 왼쪽에 있는 브랜치를 기준으로 오른쪽 브랜치와 비교한다.

git log master..show

이러면 master 브랜치에는 없고 show 브랜치에만 있는 커밋을 보여준다.

마치며

다음은 브랜치 병합에 대해 포스팅하겠습니다.

참고문헌

이고잉, 고경희, 『Do it! 깃&깃허브 입문』 이지스퍼블리싱(2019)

작성된 댓글이 없습니다!
댓글을 작성하기 위해 로그인이 필요합니다.