깃의 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 명령어 사용한 이후에 수정된 부분만 폐기된다.
'데브옵스(DevOps) > Git & Github' 카테고리의 다른 글
[Git / Github] 깃과 깃허브의 병합 충돌 해결하기 (0) | 2022.08.28 |
---|---|
[Git / Github] 풀 리퀘스트 정리 (PR: Pull Request) (0) | 2022.08.27 |
[Git / Github] 깃 배쉬와 깃허브 명령어 정리 (깃 배쉬 사용법) (0) | 2022.08.27 |
[Git / Github] 깃허브 클론 (clone) 하는 방법 (깃허브 리포지토리 로컬로 복사) (2) | 2022.08.27 |
[Git / Github] 포크 (Fork) 하는 방법 (오픈 소스 프로젝트 복제하기) (0) | 2022.08.27 |