💡 작업 트리에서 수정한 파일 되돌리기
git checkout -- {수정을 원하는 filename}
- checkout 명령을 사용하면 작업 트리에서 수정한 내용을 쉽게 취소할 수 있음
- 즉, 파일의 수정을 취소하고 원래대로 되돌리는 것
- 다만, checkout으로 되돌린 내용은 다시 복구할 수 없음
💡 스테이징 되돌리기
git reset HEAD {filename}
- HEAD 다음에 파일 이름을 지정하지 않으면 스테이지에 있는 모든 파일을 되돌림
- 스테이지에서 내려지면 Unstaged changes after reset라고 뜸
- 파일이 아직 스테이지에 올라가기 전(not staged)으로 돌아온 것을 확인할 수 있음
💡 최신 커밋 되돌리기
git reset HEAD^
- 가장 최신, 즉 가장 마지막에 한 커밋을 취소하는 방법
- HEAD^란 현재 HEAD가 가리키는 브랜치의 최신 커밋을 가리킴
- 커밋이 취소되고 스테이지에서도 내려졌따는 메시지가 나타남(Unstaged changes)
- git log 명령어로 로그 확인
git reset --soft HEAD^
- 최근 커밋을 하기 전 상태로 작업 트리 되돌림
git reset --mixed HEAD^
- 최근 커밋과 스테이징을 하기 전 상태로 작업 트리 되돌림
- 옵션없이 git reset 명령을 사용했을 때와 같은 결과
git reset --hard HEAD^
- 최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌림
- 이 옵션으로 되돌린 내용은 복구 불가
💡 특정 커밋으로 되돌리기
git reset --hard {커밋 해시}
# git log
# git reset --hard 0a74384c45c26d7c0c98bfed9608e4c8c934128c
- 특정 커밋으로 되돌릴 때 사용
- reset A : 최근 커밋을 A로 리셋(A 커밋을 리셋하는 것이 아님), 즉 A 커밋으로 이동하겠다는 의미
- git log의 커밋을 copy해서 사용
- 복사해서 붙인 커밋 해시 위치가 가장 최신 커밋이 된 것을 확인 가능
💡 커밋 삭제하지 않고 되돌리기
git revert {커밋 해시}
- 커밋을 되돌려도 취소한 커밋을 남길 때 사용
- 취소할 커밋의 해시가 아닌 되돌아갈 커밋 해시를 지정하는 reset과는 달리 revert는 취소할 커밋 해시를 지정함
지금까지의 내용은 Do it! 지옥에서 온 문서 관리자 깃 & 깃허브 입문의 67페이지에서 82페이지를 읽고 정리한 내용이다.
'개발 관련 > git' 카테고리의 다른 글
브랜치(git branch) - 병합(git merge) (0) | 2021.09.04 |
---|---|
브랜치(git branch) - 생성 및 조회 (0) | 2021.09.03 |
커밋한 메시지 수정하기 : --amend (0) | 2021.09.02 |
git log --stat (0) | 2021.09.02 |
깃 토큰 인증하기 (0) | 2021.08.22 |