VCS/Git

[Pro Git] 3-1. Git 브랜치: 브랜치란 무엇인가

noahkim_ 2024. 1. 20. 23:59

Scott Chacon & Ben Straub 님의 "Pro Git" 책을 정리한 포스팅 입니다.

 

1. 브랜치란 무엇인가

브랜치

코드의 독립적인 라인
  • 원본 코드를 변경하지 않고 복사본에서 작업할 수 있게 해줍니다.
  • 개별적으로 개발을 진행한 후, 이를 원본 코드와 병합하여 최종 제품을 완성합니다.

 

Blob 객체

  • Git에서 파일의 내용을 저장하는 객체입니다.
    • 파일의 이름이나 경로 정보는 포함하지 않습니다.
  • 일종의 파일에 대한 스냅샷
    • 파일을 Staging Area에 추가할 때, 파일의 내용을 Blob 객체로 변환하고 저장합니다.

 

커밋 객체

  • 특정 시점의 프로젝트 상태를 나타내는 객체입니다.

 

Staging Area에 있는 데이터의 스냅샷에 대한 포인터
  • Staging Area에 있는 파일들의 상태를 스냅샷으로 캡쳐하고, 이 스냅샷에 대한 포인터를 포함합니다.
  • 이 스냅샷은 파일들의 특정 상태를 기록한 것입니다.

 

트래 객체에 대한 포인터
  • 전체 디렉토리 구조와 파일의 상태를 나타냅니다.
    • 루트 디렉토리
    • 다른 하위 디렉토리에
  • Staging Area의 파일들의 상태를 기록합니다.

 

이전 커밋에 대한 포인터
  • 현재 커밋이 이전에 비해 어떤 부분이 바뀌었는지 알게하는 기준 역할을 합니다.
    • 이 포인터를 사용하여 프로젝트의 히스토리를 추적합니다.
  • Merge 커밋 같은 경우 이전 커밋 포인터가 여러개 있습니다.

 

메타데이터
  • 저자
  • 커밋메시지