본문 바로가기
DevOps/Git

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

by sihyeong 2024. 1. 7.
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 상태로 되돌아 간다.