Skip to content

Latest commit

 

History

History
 
 

chapter6-branch

🌲 브랜치란?

저장 공간 하나에서 가상의 또 다른 저장 공간을 만드는 것 입니다.

나뭇가지, 지사, 분점 등 줄기 하나에서 뻗어 나온 갈림길을 의미합니다.


🔨 작업

  • 커밋은 파일의 수정 이력을 관리하는데 사용한다면, 브랜치는 프로젝트를 독립적으로 관리하는데 사용합니다.
  • 개발자는 안정된 코드 상태를 유지하고, 개발 중인 작업과 구분하여 관리해야합니다.
  • 잦은 버그 수정, 새로운 기능 구현을 할 때 작업 폴더를 복사하는 것은 프로젝트 유지 측면에서 좋지 않습니다.
  • 깃을 사용한다면 작업 폴더를 복사하지 않고 기존 코드와 분리해서 작업이 가능합니다.

⭐ 특징

기존 폴더를 복제하는 것과 다르게 가상 폴더를 사용하여 개발 작업을 구분합니다.

  • 가상 폴더

    • 외부적으로 봤을 때 파일 하나만 있는 것 처럼 보입니다.
    • 작업 폴더를 실제로 복사하지 않고, 가상 폴더를 생성합니다.
    • 브랜치로 생성된 가상 폴더는 빠른 공간 이동으로 쉽게 프로젝트를 수행할 수 있습니다.
  • 독립적인 동작

    • 원본 폴더와 분리하여 독립적으로 개발 작업을 수행할 수 있습니다.
    • 깃의 브랜치의 규모가 큰 코드 수정 혹은 병합의 경우 유용합니다.
    • 물리적으로 복사된 폴더는 코드 작업 후 작업 내역에서 일일이 찾아 정리를 해야 하지만, 분리된 브랜치에서 각자 수정 후 병합하는 명령만 실행하면 병합이 가능합니다.
  • 빠른 동작

    • 다양한 버전 관리 도구도 브랜치 기능을 지원 하지만, 보통 다른 VCS들은 브랜치 명령을 사용해 커밋을 생성해서 전체를 복사하기 때문에 시간이 오래 걸립니다.
    • 깃은 Blob 개념을 도입해 내부를 구조화하고, 브랜치를 변경할 때 포인터를 이용하여 빠르게 전환합니다.

      Blob은 포인트와 유사한 객채입니다.

    • 깃은 41바이트 (SHA1)파일 하나만 만들면 되기에 빠르게 생성할 수 있습니다.

📁 실습 준비

깃은 Main 브랜치를 하나 가지고 있습니다.

$ cd 메인폴더
$ mkdir gitstudy06 # 새 폴더 만들기
$ cd gitstudy06
$ git init # 저장소 초기화

현재 브랜치가 main이라는 것을 알 수 있고, 작업 위치와 리눅스 명령을 사용할 수 있습니다.

기본 브랜치

branch 명령어를 통해 브랜치 목록을 확인할 수 있습니다.

$ git status # 현재 작업중인 브랜치 위치 확인
$ git branch # 브랜치 목록

기본적으로 master 브랜치를 가지지만, 내용에서는 main으로 변경해 사용했습니다.
깃에서 가장 기본적인 브랜치 master는 기본값 그대로 사용할 필요는 없고, 변경이 가능합니다.