Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

aeFactory

[Git] 깃의 3가지 작업 영역과 파일의 상태에 관한 LifeCycle 본문

Git

[Git] 깃의 3가지 작업 영역과 파일의 상태에 관한 LifeCycle

은하비 2023. 5. 14. 02:08

1. Git의 3가지 작업 영역
2. Git이 관리하는 파일의 3가지 상태
3. 파일의 상태에 관한 LifeCycle

Git의 3가지 작업 영역

Git의 3가지 작업 영역은 Working Directory, Staging Area, Repository 입니다.

 

Figure 1. Git의 3가지 작업 영역

1. Working Directory

  • 프로젝트를 진행하고 있는 폴더
  • 프로젝트를 깃으로 관리하고자 할 때 $git init 한 곳

2. Staging Area

  • commit을 하기 위한 파일을 임시로 모으는 곳
  • git이 감지한 변화를 $git add하면 'Stage에 올라간다' 라고 표현
  • Staging Area에 있는 변경 사항들을 필요한 내용만 commit할 수 있음

3. Repository

  • $git init을 통해 생성한 .git 폴더
  • git을 통해 관리하고 있는 프로젝트의 변경 사항들을 저장한 폴더

Git이 관리하는 파일의 3가지 상태

Git은 Git이 관리하는 파일을 Modified, Staged, Commited의 3가지 상태로 관리합니다. 파일의 상태는 파일이 위의 Git의 3가지 작업 영역을 오가는 것으로 설명할 수 있습니다.

1. Modified

  • Working Directory에 있는 파일 중 Git이 변경을 감지했음을 의미
  • 내용을 추가, 삭제하는 등의 모든 수정 상태를 포함
  • 하지만, 파일 자체의 삭제는 포함하지 않음

2. Staged

  • Staging Area에 파일이 있는 상태
  • 변경 사항을 commit할 준비가 됐음을 의미

3. Commited

  • Repository에 변경사항이 성공적으로 저장되었음을 의미

파일의 상태에 관한 LifeCycle

위의 3가지 파일의 상태는 Git이 관리하는 파일들이 어떠한 상태를 가질 수 있는지에 관한 내용입니다. 하지만 Working Directory에는 Git이 관리하고 있지 않은 파일이 있을 수 있습니다. 이러한 파일 상태를 Untracked라고 부릅니다. 한번도 $git add를 하지 않았을 수도 있고 파일을 삭제하는 경우에도 파일이 Untracked된 것으로 간주합니다. Tracked된 파일은 파일의 변경 사항 여부에 따라 Modifed와 Unmodifed 상태로 나뉩니다. Unmodified 상태의 파일을 수정하면 Modified 상태로 변경됩니다. 이를 Unmodified 상태로 변경하고 싶은 경우 파일을 Stage하여 Staged 상태가된 파일을 Commit하는 것으로 Unmodified로 변경할 수 있습니다.

 

Figure 2. 파일의 상태에 관한 LifeCycle

1. Untracked

  • Working Directory에 존재하나 Git이 관리하지 않는 파일을 의미
  • 한 번도 $git add 된 적이 없는 파일
  • 삭제된 파일
  • 파일을 $git add 하는 것으로 Staged 상태로 변화

2. Unmodified

  • Tracked 된 파일 중 Git이 수정을 감지하지 않은 파일을 의미
  • 파일을 수정하는 것으로 Modified 상태로 변화

3. Modified

  • Tracked 된 파일 중 Git이 수정을 감지한 파일
  • 변경 사항을 Stage 하는 것으로 Staged로 변화

4. Staged

  • 변경 사항이 확정되어 commit할 준비가 된 파일
  • 파일을 commit하는 것으로 Unmodified 상태로 변화