데브옵스(DevOps)/Git & Github

[Git / Github] 깃의 스테이징 영역과 상태 정리 (add, commit, push의 상태 대하여)

잇트루 2022. 8. 27. 06:35
반응형

깃의 3가지 영역과 3가지 상태

깃에는 Untracked area, Tracked area, Staging area 3가지 영역이 존재한다.

이 중 Tracked area에는 Staged, Modified, Unmodified 3 가지 상태가 존재한다.

 

3가지 영역

Untracked area : Git이 관리하고 있지 않은 영역

Tracked area : Git의 관리를 받을 수 있는 영역

Staging area : Commit이 가능한 영역

 

3가지 상태

Unmodified : 기존에 Commit 했던 파일을 수정하지 않은 상태

modified : 기존에 Commit 했던 파일을 수정한 상태

Staged : Commit이 가능한 상태

Staged 상태가 되기 위해서는 git add 명령어를 사용해야 한다.

 

스테이징 영역 (Staging area)

스테이징 영역(Staging area)란 commit이 가능한 영역으로, 커밋하기 전 파일을 담아두는 상자라고 볼 수 있다. git add 명령어를 통해 수정된 파일을 스테이징 영역에 담을 수 있다.

 

즉, 스테이징 영역은 커밋하기 위한 파일들을 담는 박스이고, commit 하는 것은 박스에 담긴 파일들을 간단한 코멘트를 남겨 라벨링을 해주는 것이다.

 

만약, git add 명령어를 통해 파일을 Staging area에 추가한 상태에서 또 파일을 수정한다면,

해당 파일은 스테이징 영역에 존재하면서, 수정(modified)된 상태가 된다.

따라서, git status로 확인하면 스테이징 영역과 modified 영역에 둘 다 표시하게 된다.

 

이 상태에서 git commit을 하게 된다면, 스테이징 영역에 있는 파일만 커밋이 되고, 이후 수정된 내용은 커밋이 되지 않는다. 따라서 git add 명령어를 실행한 후 다시 파일을 수정한다면 git add 명령어를 다시 실행하여 파일의 최신 상태가 스테이징 영역에 존재하도록 해야 한다.

 

만약, git add 명령어를 실행한 후 다시 파일을 수정하였지만, 수정한 파일을 폐기하고 싶다면, git restore 명령어를 통해 폐기가 가능하다. git restore 명령어를 실행하였을 경우, git add 된 파일은 폐기되지 않고, git add 명령어 사용한 이후에 수정된 부분만 폐기된다.

반응형