DevOps/Git

[Git] Git의 작업영역 3가지

sihyeong 2024. 1. 7. 23:29
1. working directory (작업 공간)
2. staging area (임시 저장 공간)
3. repository (저장소)

 

1. working directory (작업 공간)

프로젝트의 코드를 저장하는 위치, 즉 실제로 파일을 다루는 로컬 환경의 공간을 의미합니다. 이 working directory는 2가지 상태를 가집니다.

1-1. untracked : Add된 적 없는 파일, ignore 된 파일

1-2. tracked : Add된 적 있고 변경내역이 있는 파일

 

working directory에서 작업 후

git add .

를 동작하면 파일들이 올라가는 곳이 바로 staging area 입니다.

 

2. staging area

작업한 환경에서의 특정 변경사항만 모아서 버전을 만들고 싶을 때 특정 파일git add를 통해 staging area에 올려 커밋을 진행하여 버전 관리를 할 수 있습니다. 

 

만약 staging area가 없다면 변경한 모든 파일을 커밋하게 되기 때문에 임시 저장소를 제공합니다.

 

staging area에서

git commit

커밋 수행 시 변경사항들이 최종적으로 .git(repository)에 저장됩니다.

 

3. repository

Git에서 작업한 이력들을 최종적으로 저장하는 "저장소" 입니다.

 

 

깃 저장소의 위치에서 숨겨진 항목을 확인하면 .git 폴더가 있는것을 확인할 수 있습니다. 이러한 .git 폴더를 통해 깃의 모든 정보(커밋된 변경사항, 브랜치 등등)들을 관리합니다.

 

 

정리

Working Directoy  --(add)-->  Staging Area  --(commit)--> Repository

위의 구조를 가집니다.

 

 

추가적인 명령어

 

파일/폴더 삭제

git rm 파일/폴더명

일반 삭제와의 차이점 : git rm으로 삭제 시 삭제한 내역이 자동으로 git add . 를 통해 staging area에 기록된다.

 

파일/폴더 이동(변경)

git mv 파일/폴더명

일반 이동(변경)과의 차이점: git mv로 이름을 변경하거나 이동 시 자동으로 git add . 를 통해 staging area에 기록된다.

 

 

 

Staging Area에서 Working Directory로 add를 취소하는 방법

git restore --staged 파일/폴더명

Staging Area에 올라온 파일/폴더명을 Working Directory로 되돌린다.

 

 

Working Directory에서 작업 내용 취소하기(없애기)

git restore 파일/폴더명

Working Directory에서 작업한 파일/폴더명의 변경사항을 버리고 파일/폴더의 가장 최근  commit 상태로 되돌아 간다.