git의 reflog에 대해 알아봅니다.
▶실패하기 이전으로 돌아가는 방법
1) .git 디렉토리가 포함된 프로젝트 폴더 복사
- Git은 모든 작업 이력을 .git 폴더에 저장한다.
- 위험한 작업을 하기 전 프로젝트 폴더(.git 디렉토리가 포함되어 있는)를 복사해 백업해두기.
- 실패 시 실패한 원본 폴더는 버리고, 복사본을 다시 가져오기.
2) commit id
- 위험한 작업을 하기 전, 현재 commit id를 기억해 두기.
git reset --hard 기억해둔commitid 명령어로 이전 커밋으로 이동하기.
3) reflog
- reflog는 Git 작업 이력을 추적하는 디버깅 도구.
- commit id를 기억하지 못했더라도 reflog로 확인 가능.
▶🌟reflog 사용하기
- 명령어
git reflog: 전체 작업 이력을 확인.
git reflog 브랜치명: 특정 브랜치의 reflog 확인.
- reflog는 HEAD가 지나간 모든 이력(커밋, 브랜치 이동, reset 등)을 보여준다.
- 각 기록은 HEAD@{n} 형식으로 표시된다.
- HEAD@{0}: HEAD가 방금 한 일. 현재 상태.
- HEAD@{1}: HEAD가 직전에 한 일.
- 숫자가 커지면 더 과거.
git reset --hard HEAD@{숫자}: commit id 대신에 HEAD@{n}으로도 원하는 버전으로 돌아갈 수 있다.
- 🌟🌟🌟내가 마지막으로 한 작업 직전으로 되돌리기 =
git reset --hard HEAD@{1}🌟🌟🌟
+) 단축 명령어 설정 Alias
git config --global alias.undo "reset --hard HEAD@{1}" 를 통해 단축 명령어를 생성하면,
git undo 만 입력하여 간단히 사용 가능.