특정 브랜치가 아닌 커밋에 직접 체크아웃한 상태
git checkout <commit-hash>
로 입력하며 switch 대신 checkout을 사용한다는 점을 주의단순히 이전 커밋 내역 둘러보기
새 브랜치 생성
git switch -c <new-branch>
명령을 사용하여 현재 커밋을 기반으로 새 브랜치를 생성할 수 있습니다.작업 내역 저장 후 체크아웃
git stash
를 사용하여 변경사항을 저장한 다음, 원하는 브랜치로 체크아웃할 수 있습니다. 이후에 해당 변경사항을 다시 로드하여 작업을 계속할 수 있다.HEAD~1
이면 한 단계 이전, HEAD~2
이면 두 단계 이전으로 이동작업 디렉토리(add 전)나 인덱스의 변경사항(add 후 commit 전)을 특정 커밋의 상태로 되돌리는 데 사용
작업 디렉토리의 파일을 복원
git restore <file>
를 실행하면, 지정된 파일의 변경사항을 HEAD의 상태로 되돌린다. 즉, 최근 커밋 상태로 해당 파일을 복원한다. 이 경우, 아직 커밋되지 않은 변경사항은 제거된다.스테이징한 파일 언스테이징하기
git restore --staged <file>
을 실행하면, 지정된 <file>
의 스테이징 상태가 해제된다. 이 경우, 스테이징된 변경사항이 제거되지만, 작업 디렉토리의 변경사항은 그대로 유지된다.git restore --source <commit-hash> <file>
명령은 지정된 <commit-hash>
의 상태로 <file>
을 복원한다. 즉, <file>
의 내용을 <commit-hash>
에서의 내용으로 변경
현재 HEAD를 특정 커밋으로 이동시키는데 사용된다. 주로 이전의 상태로 "되돌리고" 싶을 때 사용되는 명령어
git reset <commit-hash>
명령을 실행하면, 현재 브랜치의 HEAD가 지정된 <commit-hash>
로 이동 -> 지정된 커밋 이후의 모든 커밋이 "사라지게" 됨 -> 완전히 사라지는 것은 아니고 Git 저장소에 남게되어 다시 되돌릴 수도 있음!--hard
--soft
--mixed (default)
git reset --hard ORIG_HEAD
Git에서 특정 커밋을 취소하는 데 사용되는 명령어
그러나 이 명령어는 단순히 이전 상태로 되돌리는 것이 아니라, 취소하려는 커밋의 변경 사항을 반대로 적용하는 새로운 커밋을 생성한다. 이는 기록을 유지하면서 변경 사항을 되돌리는 방법이므로, 공동 작업을 하는 환경에서 특히 유용하다.
git revert 5d88de0
(Reset은 이후의 것이 삭제 되므로)git revert 959932e
해시를 쓴다.