브랜치(Branch) 개념
버전관리 시스템들에는 브랜치라는 개념이 있습니다.
브랜치(branch)의 사전적 의미는
나뭇가지, 지사, 분점이라고 하는데,
마찬가지로 버전관리에서도
브랜치는 큰 나무에서 많은 가지들이 뻗어 나오는 것처럼
같은 프로젝트를 복사해서 독립적으로 작업이 가능하게 합니다.
이런 버전관리 시스템을 사용하지 않았을 때도
사실은 브랜치 작업을 했었다고 할 수 있습니다.
버전관리시스템 없이 개발하던 때에
새로운 기능을 추가하거나,
다른 시도를 해보기 위해 작업을 시작하기 전에
작업 폴더를 통째로 복사해서 이름을 바꿔서 작업을 했었는데,
이러한 행동이 어떻게 보면 브랜치 작업이라고 볼 수 있습니다.
하지만, 이렇게 매번 하다 보면,
프로젝트를 유지 관리하기가 매우 힘들어집니다.
나중에 코드를 통합하기도 어렵습니다.
Git의 브랜치를 이용하면 기존 코드와 분리해서 편리하게 작업하고 병합까지 할 수 있습니다.
Git에서의 브랜치는 작업 폴더를 실제 물리적으로 복사하는 개념이 아니라,
Git 영역에서 작업자를 추가로 만드는 개념이라고 생각하면 이해가 쉽습니다.
Git의 세상이 어떤 지 다시 짚어보면서 설명하겠습니다.
앞서, 우리는 firstrepo라는 폴더를 만들고,
$ git init 명령어로 초기화(저장소)를 진행했습니다.
$ git init 이후 초기화가 완료된 다음에는
해당 폴더 경로 뒤에 (master)라고 표시됩니다.
Git은 기본적으로 master 라는 이름의 브랜치를 하나 가지고 있습니다.
이는 다르게 표현하면 master 라는 가상의 작업 공간이 생긴 것입니다.
이 결과를 Git의 영역으로 그림을 그려보면 다음과 같습니다.
이미 Git의 개념을 학습할 때 확인했던 그림입니다.
평범했던 firstrepo 폴더는
$ git init를 통해 Git의 통제를 받게 되는 Git 영역이 되고,
그 Git 영역 안에는 워킹 디렉토리와 스테이지, 저장소가 구성이 됩니다.
그리고 master 라는 기본이 되는 큰 나무줄기인 브랜치가 생기게 되는 것입니다.
master라는 작업 반장이 생겼다고 생각해도 좋습니다.
지금까지 우리가 해 봤던 git 의 명령어들은
이 “master 브랜치”라는 작업 반장이 했다고 생각해도 좋다는 얘기입니다.
다음 포스팅부터 브랜치를 만들어 보면서
다시한번 브랜치(branch)에 대한 개념을 더 살펴보겠습니다.
감사합니다.
'코딩해보니 > Git' 카테고리의 다른 글
[Git_28] 브랜치(Branch) 이동(checkout) (0) | 2022.12.28 |
---|---|
[Git_27] 브랜치(Branch) 만들기 (0) | 2022.12.27 |
[Git_25] diff 명령어로 비교 확인하기 (0) | 2022.12.24 |
[Git_24] 커밋 수정하기 --amend 옵션 사용하기 (0) | 2022.12.23 |
[Git_23] 커밋 되돌리기 - 리버트(revert) (0) | 2022.12.21 |
댓글