브랜치

Violet_Evgadn·2023년 9월 3일
0

Git

목록 보기
11/33

브랜치

Git이 커밋을 관리하는 방식

이전에 간단히 설명한 적이 있지만, Git에서는 커밋을 마치 LinkedList 형식처럼 관리하고 있다.

각각의 커밋들은 바로 이전의 커밋을 가리키고 있고, 이런 커밋(Node) 여러 개가 모여서 하나의 Git Log를 만들게 되는 것이다.

브랜치의 필요성

만약 한 사람이 커밋을 계속 쌓는다면 아마 위 사진처럼 한 줄의 LinkedList 형태로 커밋이 쌓이게 될 것이다.

하지만 여기에서 중요한 점이 Git은 "협업 툴"이라는 것이다.
과연 Git에서 위 이미지처럼 예쁘게 한 줄로 커밋이 관리될까? 절대 그렇지 않다.

예를 들어 3번째 커밋을 기준으로 A라는 사람은 T1이라는 업무를 해야 하고 B라는 사람은 T2라는 업무를 해야 한다고 가정하자.
이때 A와 B가 작업을 수행할 때마다 커밋을 한 줄로 쌓기에는 너무 비효율적이고 서로의 작업물에 자신의 코드가 영향을 받을 수도 있다는 단점이 존재한다.

따라서, 이런 경우 3번째 커밋을 기준으로 방향을 두 갈래로 나누어 각자의 작업을 수행하는 것이 더욱 편할 것이다.
마치 아래 이미지와 같이 말이다.

이렇게 특정한 기준(위 이미지에서 3번째 커밋) 시점으로 줄기를 나누어 작업할 수 있는 기능을 "브랜치(Branch)"라고 한다.
그리고 나누어진 줄기 자체를 "브랜치"라고도 부른다.

즉, 브랜치를 통해 협업을 수행하면서 각자의 작업물에 영향을 주지 않으며 작업할 수 있고 자신의 작업이 완료된 순간 브랜치 분기점에 최종 결과물을 병합함으로써 효율적인 협업이 가능해지는 것이다.

브랜치 간 이동

그렇다면 다른 브랜치로는 어떻게 이동할 수 있을까?
사실 위 이론을 제대로 이해했다면 이 질문의 답은 너무 쉽다.

결국 브랜치 또한 커밋의 일종이다.
즉, 브랜치를 변경한다는 것은 그냥 HEAD가 가리키는 커밋만 변경해 주면 된다는 것이다.

예를 들어, A 브랜치에서 B 브랜치로 이동해야 한다고 가정하자.
일단 Git에서 현재 HEAD는 A 커밋을 가리키고 있을 것이다. 이때 HEAD가 B 커밋을 가리키도록 변경한다면 B 브랜치로 이동할 수 있는 것이다.

profile
혹시 틀린 내용이 있다면 언제든 말씀해주세요!

0개의 댓글