Git-Github

2. Git 실행 원리

JE_:) 2023. 4. 5. 14:09
728x90

Git 3가지 영역과 흐름(Flow)

Git의 3가지 영역을 확인하며, Git 실행 흐름과 원리를 이해하고자 포스팅을 작성한다. 

(위 이미지는 학습을 진행하면서 정리한 내용을 그려 첨부하였다 ()) 

 

 

해당 내용에 대해 자세히 들어보고 싶다면, 

Inflearn 강의 중, 지옥에서 온 관리자 Git - Git 3가지 영역 부분을 들어보길 바란다. 

https://www.inflearn.com/course/%EA%B9%83-%EC%9E%85%EB%AC%B8 

 

[무료] 지옥에서 온 관리자 Git - 인프런 | 강의

“소규모 협업을 통해 프로젝트 개발을 하고 싶은데 어떻게 해야 할지 모르겠어요!” “취업을 앞둔 취준생인데 Git을 몰라요!” 취준생, 주니어 개발자 등 프로그래머라면 꼭 알아야 하는 Git에

www.inflearn.com

 

해당 강의를 수강 후, 내 나름대로 정리하고 이해하고자 해당 포스팅을 작성한다. 

 

 

* Git의 3가지 영역

 

Git의 영역을 3가지로 보면,

- 작업 환경(Working Directory)

- 인덱스(Index) 영역 (Staging Area)

- 헤더(Header) 영역 (Repository)   으로 나눌 수 있다. 

위와 같은 3가지 작업 영역으로 파일들을 관리한다. 해당 영역을에 대해 살펴 보자. 

Git 3가지 영역

 

1. Working Directory
: Git이 추적 중인 파일들이 위치하는 영역.

실제 프로젝트의 폴더에서 .git을 제외한 모든 영역을 뜻하며, 실제 코드의 변경이 이루어지고 이를 감지하는 영역이다. 

 

2. Index  또는 Staging Area
: Working Directory에서 Repository로 정보가 저장되기 전 준비 영역 (즉, 1 -> 3으로 가기 전 대기 영역)

파일의 상태를 기록하는 것을 스테이징(Staging) 한다고 표현한다. 
Working Directory에 위치하는 .git 내부 /index 파일로 관리되며, git add 명령어로 1의 정보가 저장된다. 

git commit의 명령어를 통해 해당 영역에서 Repository로 정보가 전달되어 저장된다.

 

3. Header 또는 Repository 
: 파일이나 폴더의 변경 이력을 저장하는 영역.

Working Directory에 위치하는 .git 디렉토리 내에 존재한다. 


이때, 이전에 언급된 Local Repository / Remote Repository의 개념이 쓰인다. 

Local Repository - 로컬 PC(개인 PC)에 파일이 저장됨. 즉, 개인 저장소

Remote Repository - 파일이 원격 저장소에 저장됨. 즉, 서버 및 클라우드 환경에서 관리되며 협업 가능한 (공유 가능한) 저장소.

 

 

더보기

 

# 임시 저장을 담당하는 임시 영역인 'Stash' 또한 존재한다.

 

- 현재작업을 일시적으로 저장하고 싶을 때

- 일시적으로 저장해 둔 작업 목록을 확인하고 싶을 때

- 일시적으로 저장해 둔 작업을 되돌리고 싶을 때

- 일시적으로 저장해 둔 작업을 삭제하고 싶을 때

- 일시적으로 저장해 둔 작업을 모두 삭제하고 싶을 때 

 

위와 같은 3가지 영역은, 위 [3가지 영역] 그림을 참고하여 어떤 방향으로 작업이 실행되는지를 참고할 수 있다.

추가로 Git의 3가지 영역에 이어 3가지 상태와 Life Cycle 관점에서 본 4가지 상태를 확인해보자. 

 

 

* Git의 3가지 상태

 

Modified Staged Commited
수정된 파일을 commit하지 않은 상태.

Working Directory 영역의 파일 중,
수정한 파일이 있는 상태
수정한 파일 중 commit 하기 위해 add한 상태.

Staging Area 영역에 있는 파일들의 상태
Staged 상태의 파일이 데이터베이스에 안전하게 저장된 상태.

대상 파일의 버전을 관리하는 파일들이
Git Directory에 저장된 상태

 

 

 

* Git 파일의 LifeCycle 관점에서 본 4가지 상태 

 

* LifeCycle : 생명 주기 (즉, 특정 장비나 프로그램이 작동(또는 실행)되어 끝마치기 까지의 기간)

 

(1) Working Directory에 있는 파일( = Git 추적 대상이 되는 파일)은 

        ① Tracked 상태       ② Untracked 상태 로 분류 된다. 

① : Tracked, git이 상태 관리를 진행하는 파일.

② :  Untracked, git이 관리하지 않는 파일.

 

이때, ① Tracked는 세부적으로 3가지 상태로 나뉠 수 있다.

더보기

❶ Unmodified : 처음 clone 후, 파일 수정 전 상태. 

❷ Modified : 파일을 수정한 후의 상태.

❸ Staged : 파일 수정 후 git add(명령어)를 통해 staging Area(또는 index 영역)에 추가된 상태.

정리하면,  LifeCycle 관점에서 본 파일들은 Tracked, Unmodifeid, Modified, Staged 4가지 상태로 분류된다.

즉, Git 파일들은 반드시 4가지 상태 중 하나를 가지게 되고, 4가지 상태를 반복적으로 순환한다.

 

 

 

 

 

 

 

 

 

 

 

참고 : https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EA%B8%B0%EC%B4%88, https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%88%98%EC%A0%95%ED%95%98%EA%B3%A0-%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0 [ git 공식 홈페이지 ] 

 

 

728x90