Git은 세 가지 주요 영역 또는 상태를 가지고 있습니다.
Working directory, Staging area, Repository 이 세 가지에 대해 알아보겠습니다.
Working directory
프로젝트의 실제 파일들이 저장되는 곳입니다.
이 디렉토리는 수정이 되고 있는 활성 작업 영역입니다.
Untracked 파일
Git이 관리하지 않는 파일입니다.
이 파일들을 이전에 커밋되거나 스테이징 영역에 추가되지 않았으며 단순히 작업 디렉토리에 있는 파일입니다.
이러한 파일들을 Git의 관리를 받지 않으므로 변경 사항을 커밋 포함시키기 위해서는 'git add' 명령어를 사용하여 스테이징 영역에 추가해야 합니다.
Tracked 파일
Git이 이미 알고 있는 파일로 이전 커밋에서 스테이징 영역에 있었던 파일이거나 최근에 커밋된 파일입니다.
Tracked 파일은 변경 사항을 감지하고 이를 스테이징하여 다음 커밋에 포함시킬 수 있습니다.
Staging area
스테이징 영역 또는 인덱스는 Git이 추적하고 관리할 파일들의 변경 사항을 준비하는 중간 단계입니다.
작업 디렉토리에서 변경된 파일들을 스테이징 영역에 추가하여 Git은 이들을 이후 커밋에 포함시킬 준비를 합니다.
'git commit' 명령어를 사용하여 스테이징 영역에 있는 변경사항들을 새로운 커밋으로 만들어 Repository에 추가해야 합니다.
Repository
Git이 프로젝트의 모든 버전 히스토리를 저장하는 곳입니다.
모든 커밋, 브랜치, 태그 등의 메타데이터와 함께 파일들의 변경 이력이 포함됩니다.
일반적으로 Repository는 두 가지 형태로 나뉩니다.
- Local Repository(로컬 저장소): 로컬 작업 환경에서 변경 이력을 추적하고 관리합니다.
- Remote Repository(원격 저장소): 이는 로컬 저장소와는 별개로, 네트워크나 인터넷상의 다른 장소에 위치한 저장소입니다.
주로 여러 사람이 함께 작업할 수 있는 공유 작업 환경을 만들어줍니다.
주로 GitHub, GitLab과 같은 웹 기반 호스팅 서비스를 통해 호스팅 됩니다.
이렇게 글로 이해하기에는 어려움이 있을 수 있습니다 😆
위의 3가지 영역을 물류 창고의 상황으로 예를 들어보겠습니다.
- Working Director(작업 디렉토리)는 창고에 도착한 상품들이 배치되는 곳입니다.
아직 창고 내부에 적절한 위치로 옮겨지지 않았기 때문에 임시로 보관됩니다.
(여기서는 아직 완전히 정리되거나 추적되지 않은 상태입니다.) - Staging Area(스테이징 영역)는 작업 디렉토리에 있는 상품들 중에서 출고 준비가 된 상품들이 모이는 임시 공간입니다.
출고 준비가 완료된 상품들이 Staging Area로 이동하여 출고 준비 과정을 거칩니다. - Repository는 물류 센터에서 물류와 출고기록을 추적하고 저장하는 곳과 유사합니다.
스테이징 영역의 제품(파일)은 이제 저장소(출고 기록)로 영구 저장됩니다.
이 저장소는 개발자의 컴퓨터에 위치하며 변경 사항을 추적하고 컴퓨터 내에서 모든 변경 이력을 저장합니다.
이로써 제품의 출고 이력을 추적하고 변경 사항을 롤백하거나 이전 상태로 복구할 수 있습니다.
이 세 가지 영역을 이해하면 Git의 작업 흐름을 이해하는데 도움이 됩니다.
개발자는 파일들을 Working Directory(작업 디렉토리)에서 작업하고 변경 사항을 Staging Area(스테이징 영역)로 이동시켜 커밋할 준비를 합니다.
그런 다음 변경 사항이 Repository(저장소)에 영구 저장되어 변경 이력을 추적합니다.
이 변경 이력은 원격 저장소와 공유되어 협업과 백업에 사용됩니다.
'Git' 카테고리의 다른 글
GitLab CI/CD 캐시, 왜 내 코드가 안 바뀔까? (0) | 2025.02.28 |
---|---|
[Git] GitHub Repository에 연결하기 (0) | 2024.06.28 |
[Git] git 충돌 해결하기 (2) | 2023.10.18 |
[Git] branch를 합치는 방법 (2) | 2023.10.15 |
[Git] 여러 branch 만들어보기 (0) | 2023.10.13 |