1. Git Checkout
>git checkout <commit-hash>
특정 commit hash로 checkout
즉, 특정 commit hash로 건너뜁니다. (시간을 이동합니다.)
>git checkout HEAD~1
HEAD에서 1개 이전의 commit을 참조합니다.
- 아래와 같은 문장이 나올 수 있습니다!
-> HEAD가 분리되었습니다. 하하
HEAD가 branch를 통해 commit에 붙어 있어야 하는데, branch없이 commit에 붙어 있어서 발생하는 문제입니다.
아래와 같이 새로운 branch를 만들어서 이동하면 문제는 해결됩니다.
>git switch -c <branch-name>
2. 변경 사항 초기화하기
>git checkout HEAD <file-name>
or >git checkout -- <file-name>
file의 수정한 내용을 전부 삭제합니다. (처음으로 되돌리기/마지막 commit의 내용으로 재설정)
[신 명령어]
>git restore <file-name>
or >git **restore** --source <file-name>
3. Unstaging하기
>git restore --staged <file-name>
stage에 올라간 변경사항들을 취소할 때 사용합니다.
4. Commit 취소하기/복구하기
>git reset <commit-hash>
commit-hash 이후의 commit을 제거하며, 현재 파일의 데이터는 유지 -> working directory의 변경 사항은 유지
>git reset --hard <commit>
commit-hash 이후의 commit을 제거하며, 현재 파일의 데이터도 삭제 -> working directory의 변경 사항도 삭제
=> branch 기준으로 움직임으로, 다른 branch에는 영향이 없습니다.
>git revert <commit-hash>
새로운 commit을 만들고 이전 commit의 변경 사항을 취소합니다. (모든 commit은 남아 있음)
-> 새로운 commit에 복구할 commit의 정보를 담습니다.
C
Contents