Git undoing
- Git 작업 되돌리기 (undoing)
- Git에서 되돌리기는 작업 상태에 따라 크게 세가지로 분류
- working directory
- staging area
- repository
working directory 작업단계
staging area 작업단계
repository 작업단계
working directory 작업단계 되돌리기
git restore
-
working directory 에서 수정한 파일을 수정 전(직전 커밋)으로 되돌리기
-
이미 버전 관리가 되고 있는 파일만 되돌리기 가능
-
git restore를 통해 되돌리면, 해당 내용을 복원할 수 없으니 주의!!
-
git restore {파일 이름}
-
[참고] git 2.23.0 버전 이전에는 git checkout -- {파일 이름}

git status 로 상태 확인
- untracked
- tracked
- up-to-date
staging area 작업단계 되돌리기
- staging area에 반영된 파일을 working directory로 되돌리기 (==unstage)
- root-commit 여부에 따라 명령어가 달라짐
- root-commit 있는 경우 :
git rm --cached
- root-commit 없는 경우 :
git restore --staged
git rm --cached
- to unstage and remove paths only from the staging area
- root-commit이 없는 경우 사용(Git 저장소가 만들어지고 한 번도 커밋을 안 한 경우)
git rm --cached {파일 이름}


git restore --staged
- the contents are restored from HEAD
- root-commit이 있는 경우 사용(Git 저장소에 한 개 이상의 커밋이 있는 경우)
git restore --staged {파일 이름}
- [참고] git 2.23.0버전 이전에는
git reset HEAD {파일 이름}


Repository 작업 단계 되돌리기
Local Repo를 말하는 거임
- remote Repo는 Git hub의 원격 Repo
git commit --amend
-
커밋을 완료한 파일을 Staging Area로 되돌리기
-
상황 별로 두 가지 기능으로 나뉨
- Staging Area에 새로 올라온 내용이 없다면, 직전 커밋의 메시지만 수정
- Staging Area에 새로 올라온 내용이 있다면, 직전 커밋을 덮어쓰기
-
amend(수정하다) 즉, 이전 커밋을 수정해서 새 커밋으로 남김
커밋 내용을 수정하거나 수정 사항을 새로 커밋에 추가하고 싶을 때 사용
수정 사항을 반영하기 위해 새로운 커밋을 생성하지 않아도 됨
Staging Area에 새로 올라온 내용이 없는 상황




Staging Area에 새로 올라온 내용이 있는 상황




[참고] Vim 간단 사용법
- 입력 모드(i) : 문서 편집 가능
- 명령 모드(esc)