git add하면 Staging Area
Git이 추적하고 있는 파일 중 삭제
1. git rm <file.txt> : Git에서 파일을 삭제.
Staging Area로 바로 올려서 Commit 시 바로 삭제될 수 있도록 함.
즉 Working Directory에 존재하는 해당 파일을 삭제 후 해당파일이 삭제됐다는 내용을 Staging Area에 등록하는 과정까지 함께 수행하게 된다. 따라서 git rm 명령 실행 후에는 반드시 git commit 명령어가 필요.
git rm --cached <file.txt> : Staging Area 로 바로 올림과 동기에 Untracked 에 올려 나만 봄.
파일을 그냥 추가하는 경우 : Git이 전혀 알지 못하는 새로운 파일이기 때문에 Untracked에 추가됨.
💧 나만 로컬에서 쓸 거면 -> Untracked 내 추가된 상태로 사용.
(새로운 파일을 생성하면 그 파일은 Untracked 상태입니다. Untracked 파일은 Git이 해당 파일을 무시하고 추적하지 않는다.)
💧 Git에 등록할 것이면 -> Staging Area로 전달. (git add로)
Git을 통해 추적되고 있는 Tracked 파일에서 수정이 일어났을 때.
git add)
Git add어떤 곳에서든 Staging Area로 보낼 때 사용.
Git restoreStaging Area 혹은 Unstaged 에서 빠꾸(복원) 시 사용.
Git에서 작업 디렉토리의 파일을 이전 커밋이나 Staging Area의 상태로 복원.
--staged 옵션이 있으면 : Staging Area 에서 빠꾸(복원). 그러면 git add 하기 전의 상태로 이동한다.
--staged 없으면 : Unstaged 에서 빠꾸 (아무일도 없던것처럼 깨끗히 롤백 = 직전 Git 추적하던 상태로 롤백)
deleted (삭제할 파일) : Unstaged 에서 → 기존 Git 내 삭제되기 전 파일 존재 상태로 롤백
modified (수정된 파일) : Unstaged 에서 → 기존 Git 내 수정되기 전 파일상태로 롤백

다시 Stage/Unstage 정리
Staging Area : 커밋을 수행하기 전에 변경된 파일들을 일시적으로 모아두는 장소.
git add사용하여 작업 디렉토리의 변경 사항을 Staging Area에 추가.
Unstaged : Working Directory에서 수정된 파일 중 Staging Area에 추가되지 않은 변경 내용.
파일을 수정하면 해당 파일은 Unstaged 가 됨. (현재 커밋에 포함 X.)
git status로 어떤 파일이 Unstaged 상태인지 알 수 있음.