Git

git rebase 실수는 git reflog

두잇 두두 2024. 6. 14. 11:51
728x90
git reflog

 

git reflog는 Git의 명령어 중 하나로, 현재 저장소에서 발생한 모든 HEAD와 브랜치의 변경 이력을 보여주는 도구입니다. reflog는 reference log의 줄임말로, Git이 HEAD와 브랜치의 위치를 가리키는 포인터인 reference의 변경 이력을 기록합니다. 이는 다음과 같은 경우에 유용하게 사용될 수 있습니다:

  1. 실수로 삭제한 브랜치 복구:
    • 브랜치를 삭제한 후에도 git reflog를 통해 삭제한 브랜치의 이전 위치를 확인하고 복구할 수 있습니다.
  2. 리베이스나 변경 기록 확인:
    • 리베이스, 병합 등의 작업 중에 발생한 이벤트들을 확인하고, 필요한 경우 이전 상태로 되돌아갈 수 있습니다.
  3. 실수로 되돌리거나 잘못된 작업 취소:
    • git reset이나 git rebase와 같은 명령을 잘못 사용했을 때, git reflog를 통해 이전의 작업 상태로 돌아갈 수 있습니다.
 git reflog

이 명령어는 HEAD와 각 브랜치가 가리키는 위치의 변경 이력을 역순으로 출력합니다. 각 항목은 다음과 같은 정보를 포함합니다:

  • 해시 값(Commit Hash): 커밋의 해시 값입니다.
  • HEAD@{번호}: HEAD가 가리키는 위치의 상대적인 참조입니다. 예를 들어, HEAD@{0}은 가장 최근의 위치를 나타내며, HEAD@{1}은 그 이전의 위치를 나타냅니다.
  • 작업 내용: 수행된 작업(커밋, 브랜치 이동 등)에 대한 설명이 포함될 수 있습니다.

 

위 로그를 보면 rebase를 한 이력이 보인다 그 이력을 찾아서

 git reset --hard HEAD@{4}

 

를 통해서 reset을 진행하면 된다