카테고리 없음
로컬 저장소와 로컬 브랜치의 차이
ByteGuard
2024. 10. 7. 10:08
Git에서 로컬 저장소와 로컬 브랜치는 서로 다른 개념이지만, 함께 작업할 때 중요한 역할을 합니다. 두 개념은 Git을 통해 작업하는 방식에 큰 영향을 미치므로, 각각의 정의와 차이점을 이해하는 것이 중요합니다.
1. 로컬 저장소(Local Repository)
- 개념: 로컬 저장소는 Git이 관리하는 프로젝트의 모든 파일과 변경 내역을 포함한 저장소입니다. 로컬 컴퓨터에 저장되며, 개발자가 직접 작업하는 공간입니다.
- 구조: 로컬 저장소에는 프로젝트의 전체 히스토리가 기록됩니다. 이 히스토리는 여러 브랜치로 나뉘며, 모든 커밋, 브랜치, 태그 등이 포함되어 있습니다. .git 폴더 내부에 저장되며, Git이 모든 정보를 관리하는 곳이기도 합니다.
- 사용 용도: 로컬 저장소는 원격 저장소의 복사본입니다. 개발자가 변경 사항을 로컬에서 자유롭게 테스트하고, 원격 저장소와는 독립적으로 프로젝트를 관리할 수 있게 합니다.
- 작업 흐름에서의 역할: 로컬 저장소에서 변경 사항을 커밋하고, 이후 원격 저장소로 푸시할 수 있습니다. 또한 원격 저장소에서 가져온 변경 사항을 로컬 저장소에 반영하여, 다른 사람과의 협업을 돕습니다.
2. 로컬 브랜치(Local Branch)
- 개념: 로컬 브랜치는 로컬 저장소 내의 특정한 작업 트랙을 나타내는 포인터입니다. 브랜치는 특정 시점의 커밋을 가리키며, 같은 저장소 내에서 여러 개의 브랜치가 존재할 수 있습니다.
- 구조: 로컬 브랜치는 커밋 히스토리에서 분기점을 만들어, 독립적으로 작업할 수 있는 공간을 제공합니다. 로컬 브랜치 간에는 자유롭게 전환이 가능하며, 서로 다른 작업을 분리하여 관리할 수 있습니다.
- 사용 용도: 주로 새로운 기능을 개발하거나 버그를 수정할 때, 마스터 브랜치와는 별도로 작업하기 위해 로컬 브랜치를 사용합니다. 이를 통해 여러 작업을 병렬로 수행할 수 있고, 작업이 완료되면 병합하여 통합할 수 있습니다.
- 작업 흐름에서의 역할: 로컬 브랜치는 특정 작업을 독립적으로 진행하고, 필요에 따라 다른 브랜치와 병합하여 최종 결과를 완성합니다.
3. 로컬 저장소와 로컬 브랜치의 차이점
- 저장 영역: 로컬 저장소는 프로젝트의 전체 커밋 히스토리를 저장하는 곳이고, 로컬 브랜치는 이 히스토리 내에서 특정 커밋과 커밋 간의 연결을 나타내는 지점입니다.
- 포인터 vs 데이터 저장: 로컬 브랜치는 로컬 저장소 내에서 커밋의 특정 지점을 가리키는 포인터에 가깝습니다. 반면, 로컬 저장소는 데이터(커밋 내역 및 파일)를 저장하는 전체 공간입니다.
- 작업 단위: 로컬 저장소는 프로젝트 자체의 전체 내용을 관리하는 반면, 로컬 브랜치는 특정한 작업 단위를 분리하여 작업할 수 있도록 합니다.
예시로 이해하기
git fetch를 실행하면 원격 저장소의 최신 변경 사항을 로컬 저장소로 가져옵니다. 하지만 로컬 브랜치에는 자동으로 반영되지 않습니다. fetch는 원격 저장소의 변경 사항을 가져오는 것만으로, 이를 로컬 브랜치에 적용하려면 merge나 pull 명령을 추가로 사용해야 합니다.
이를 통해 로컬 저장소와 로컬 브랜치의 차이를 이해할 수 있습니다. 로컬 저장소는 모든 정보를 가지고 있으며, 로컬 브랜치는 그 정보 중 하나의 트랙을 가리키며 작업을 수행하는 데 도움을 줍니다.