"되돌리기" 기록 보기
개발자로서 코드베이스에 적용한 변경 사항을 되돌려야 할 수 있습니다. Git 은 git reset 또는 git revert 명령을 사용하는 등 변경 사항을 되돌리는 여러 가지 방법을 제공합니다. 하지만 git rebase와 같은 고급 명령을 사용한 경우 특히, 수행한 모든 작업을 추적하는 것은 어려울 수 있습니다. 이럴 때 git reflog 명령이 유용합니다.
git reflog 명령은 Git 참조 로그를 표시합니다. 이는 리포지토리에서 수행한 모든 작업의 기록입니다. 여기에는 커밋뿐만 아니라 브랜치 병합, 리베이스 및 리셋과 같은 다른 작업도 포함됩니다. 참조 로그를 보면 커밋 기록에 표시되지 않더라도 리포지토리에 적용한 모든 변경 사항의 전체 기록을 볼 수 있습니다.
Git 에서 "되돌리기" 기록을 보려면 git reflog 명령을 사용할 수 있습니다. 리포지토리에 몇 가지 변경 사항을 적용했는데 이를 되돌리고 싶다고 가정해 보겠습니다.
- 명령줄을 사용하여 리포지토리로 이동합니다.
cd git-playground
- 이제 실수를 해서 마지막 커밋을 되돌리고 싶다고 가정해 보겠습니다.
git reset 명령을 사용하여 이 작업을 수행할 수 있습니다.
git reset HEAD~1
- 이 명령을 실행한 후 또 다른 실수를 해서 리셋을 되돌리고 싶다는 것을 깨달을 수 있습니다. 이럴 때
git reflog 명령이 유용합니다. 이를 사용하여 참조 로그를 보고 이전 커밋의 커밋 해시를 찾을 수 있습니다.
git reflog
이렇게 하면 리셋을 포함하여 리포지토리에서 수행한 모든 작업 목록이 표시됩니다.
cf80005 (HEAD -> master) HEAD@{0}: reset: moving to HEAD~1
d22f46b (origin/master, origin/feature-branch, origin/HEAD) HEAD@{1}: clone: from https://github.com/labex-labs/git-playground.git
- 이 출력에서 이전 커밋 해시가
d22f46b임을 알 수 있습니다. 이 해시를 사용하여 리포지토리를 이전 커밋으로 다시 리셋할 수 있습니다.
git reset d22f46b
- 결과 확인을 위해 기록 커밋 기록을 봅니다.
git log