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

[Git_26] 브랜치(Branch) 개념

by 위시랜 2022. 12. 26.

브랜치(branch) 개념
브랜치(branch) 개념

브랜치(Branch) 개념

버전관리 시스템들에는 브랜치라는 개념이 있습니다.

브랜치(branch)의 사전적 의미는

나뭇가지, 지사, 분점이라고 하는데,

 

마찬가지로 버전관리에서도

브랜치는 큰 나무에서 많은 가지들이 뻗어 나오는 것처럼

같은 프로젝트를 복사해서 독립적으로 작업이 가능하게 합니다.


이런 버전관리 시스템을 사용하지 않았을 때도

사실은 브랜치 작업을 했었다고 할 수 있습니다.

 

버전관리시스템 없이 개발하던 때에

새로운 기능을 추가하거나,

다른 시도를 해보기 위해 작업을 시작하기 전에

작업 폴더를 통째로 복사해서 이름을 바꿔서 작업을 했었는데,

이러한 행동이 어떻게 보면 브랜치 작업이라고 볼 수 있습니다.

 

하지만, 이렇게 매번 하다 보면,

프로젝트를 유지 관리하기가 매우 힘들어집니다.

나중에 코드를 통합하기도 어렵습니다.

 

Git의 브랜치를 이용하면 기존 코드와 분리해서 편리하게 작업하고 병합까지 할 수 있습니다.

Git에서의 브랜치는 작업 폴더를 실제 물리적으로 복사하는 개념이 아니라,

Git 영역에서 작업자를 추가로 만드는 개념이라고 생각하면 이해가 쉽습니다.

 

Git의 세상이 어떤 지 다시 짚어보면서 설명하겠습니다.

앞서, 우리는 firstrepo라는 폴더를 만들고,

$ git init 명령어로 초기화(저장소)를 진행했습니다.

git init 실행 화면
git init 실행 화면

$ git init 이후 초기화가 완료된 다음에는

해당 폴더 경로 뒤에 (master)라고 표시됩니다.

git init 이 후 디렉터리 경로 표시 변화
git init 이 후 디렉터리 경로 표시 변화

 

Git은 기본적으로 master 라는 이름의 브랜치를 하나 가지고 있습니다.

이는 다르게 표현하면 master 라는 가상의 작업 공간이 생긴 것입니다.

이 결과를 Git의 영역으로 그림을 그려보면 다음과 같습니다.

이미 Git의 개념을 학습할 때 확인했던 그림입니다.

git init 실행 후 Git 영역의 변화
git init 실행 후 Git 영역의 변화

 

평범했던 firstrepo 폴더는

$ git init를 통해 Git의 통제를 받게 되는 Git 영역이 되고,

그 Git 영역 안에는 워킹 디렉토리와 스테이지, 저장소가 구성이 됩니다.

 

그리고 master 라는 기본이 되는 큰 나무줄기인 브랜치가 생기게 되는 것입니다.

master라는 작업 반장이 생겼다고 생각해도 좋습니다.

 

지금까지 우리가 해 봤던 git 의 명령어들은

이 “master 브랜치”라는 작업 반장이 했다고 생각해도 좋다는 얘기입니다.

 

다음 포스팅부터 브랜치를 만들어 보면서

다시한번 브랜치(branch)에 대한 개념을 더 살펴보겠습니다.

 

감사합니다.

댓글