몬그로이

Git/Github Git의 작동 본문

Dev 도구 정리/Git과 Github

Git/Github Git의 작동

Mon Groy 2024. 4. 15. 12:00

Git의 작업영역

단계에 따라 아래의 세 가지로 나뉜다

 

 

1. Working Directory

 

project를 check out하여 check out 당시 버전의 project를 가져와 놓는 영역

 

이력을 관리할 대상의 파일들이 놓인 영역으로 .git폴더를 제외한 공간을 말한다

작업자는 이곳에 놓인 파일이나 코드의 일부를 수정할 수도 있고, 다른 파일을 추가할 수도 있다

그렇게 작업한 파일과 코드는 (다른 곳으로 이동하기 전 까지) 그대로 이곳에 저장된다

 

 

2. Staging Area (=Index)

 

Git이 감지한 수정된 파일들이 명령어 add를 통하여 임시로 저장되는 곳

즉, commit을 진행할 파일들을 임시로 놓아두는 곳으로 .git폴더 하위에 파일 형태로 존재한다(index)

 

작업자가 Working Directory에서 수정하거나 추가한 파일을 기록하고 싶다면 이곳으로 이동시켜야 한다

(add명령어를 실행하면 "주인님, 이러한 사항들이 변경되었습니다"라고 하고 대기시켜 놓는 곳이라고 생각하자)

 

 

3. Repository(Git Directory)

 

다른 저장소의 파일을 clone했을 때 생성되는 directory이면서

대기시켜 놓았던 변경사항들을 기록하기로 결정했을 때 넘어오는 곳

 

명령어 commit을 통해 Staging Area에서 이곳으로 넘어온다

넘어온 파일들은 committed 상태가 되는데, 이곳에 넘어온 파일이 기록된 상태가 된 것을 의미한다

기록되는 이력 정보는 .git폴더에 저장, 관리 된다

 

 


 

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

 

1. modified

 

파일이 수정된 상태로, git에 의해 감지는 되었지만 commit은 되지 않은 상태

tracked에 속한다

*unmodified 기존파일 그대로의 상태로, 수정하지 않은 상태를 말한다

 

 

2. staged

 

현재 수정한 파일을 곧 commit할 것이라고 표시한 상태

modified 파일과 untracked 파일 모두 staging Area로 옮기면 staged 상태가 된다

 

 

3. committed

 

수정사항에 대한 이력이 repository(로컬 데이터 베이스)에 안전하게 저장된 상태

Git의 관리 하에 들어간 것이므로 tracked 상태이다

또한 모든 이력이 저장되었으므로 unmodified 상태이기도 하다

 

 

참고. tracked

저장소에서 관리하는 모든 파일들의 상태

*untracked : 관리대상이 아닌 파일로 추가된 파일(새파일)의 상태이다

하지만 추가한 파일이기 때문에 Working Directory에 위치해 있다