git commit 실행됨)Git이 알고 있는 파일 이미 한번 git add 한적 있음
여기서 다시 Unmodified, Modified, Staged로 나뉨
git add 한 적 없음)Working Directory 작업공간 : 로컬 작업공간에서 작업할 브랜치 선택 → git checkout

git rm 와 git restore 그리고 git restore --staged첫번째 초록색 블럭 = Staging Area : Commit 되기위해 대기중인 (1)추가 + (2)수정 + (3)삭제된 파일
new file: + (2) modified: + (3) deleted:git commit 명령어 시 여기에 있는 파일들이 Commit 된다 (스냅샷 찍힘)두번째 빨간색 블럭 = Unstaged : Git 이 추적하는 파일 중 (2)수정 + (3)삭제된 파일들의 집합
modified: + (3) deleted:git add세번째 빨간색 블럭 = Untracked : 아직 Git 이 추적하지 않는 파일 (새로 (1) 추가된 파일)
new file:git add.gitignore 에 추가Tracked : Git 이 추적하는 파일 중 수정 시나리오
모든 파일 변경 내용은 Unstaged 상태로. Commit 할것들만 선택적으로 Staging Area 로 전달
git add <file> : 변경된 파일 하나만 지목하여 Staging Area 로 전달git add . : 모든 파일 변경 사항들을 한번에 Staging Area 로 전달git add -p : 모든 파일 변경 사항들을 작은 단위로 세부적으로 확인하며 Staging Area 로 전달Hunk 라고 부르며 몇가지 옵션을 통해 손쉽게 활용 가능y = yes : 현재 보고있는 hunk 를 add(stage) 합니다.n = no : 현재 보고있는 hunk 를 add(stage) 하지않습니다.q = quit : 현재 add(stage) 과정 종료 = add 할건 다 끝나서 더 이상 볼 필요 없을때s = small : 현재 보고있는 hunk 를 더 작은 단위의 hunk 로 나눕니다.e = edit : 현재 보고있는 hunk 내용을 직접 편집합니다.Staging Area 로 전달한것을 다시 복구시키고싶다면
git restore --staged <파일이름> : Staging Area → Unstaged (git add 이전)git restore <파일이름> : Unstaged → (Unmodifed) (수정 이전)Untracked : Git 이 추적하고있지 않은 파일 추가 시나리오
파일을 추가 시 Git 이 전혀 알지못하는 새로운 파일이라 Untracked 에 추가된다
.gitignore 내 등록 : 민감 정보 등git add 를 통해 Staging Area 로 전달Staging Area 로 전달한것을 다시 복구시키고싶다면
git restore --staged <file> : Staging Area → Untracked (git add 이전)Tracked : Git 이 추적하는 파일 중 삭제 시나리오
git **rm** <file>git **rm --cached** <file>Git ADD : 어떤곳에서든 Staging Area 로 보낼때 사용
Git RESTORE : Staging Area 혹은 Unstaged 에서 이전 상태로 롤백 시 사용
--staged 옵션에 따라 Staging Area 에서 롤백할지 Unstaged 에서 롤백할지 결정
추가, 삭제, 수정 시나리오에 따라 이전 상태가 달리 정의
--staged 옵션이 있으면 : Staging Area 에서 롤백
--staged 옵션이 없으면 : Unstaged 에서 롤백 (아무일도 없던것처럼 깨끗히 롤백)