커밋 검사에 대한 정보
커밋을 체크 아웃하면 새 분기를 만들거나 기존 분기를 수정할 필요 없이 이전 상태의 리포지토리를 볼 수 있습니다. 이전 커밋 리포지토리에 버그가 있는지 확인할 수 있으므로 디버깅할 때 유용할 수 있습니다.
커밋을 체크 아웃하면 리포지토리가 "분리된 HEAD" 상태가 됩니다. Git 용어 "HEAD"는 리포지토리에서 명명된 분기의 팁 혹은 최신 커밋을 가리키는 참조입니다. "분리된 HEAD" 상태는 HEAD가 리포지토리의 명명된 분기에 있지 않고 특정 커밋을 참조한다는 의미입니다.
Note
“분리된 HEAD” 상태에서 수행된 모든 커밋은 분기를 전환할 때 손실됩니다. 이러한 커밋은 명명된 분기에서 수행되지 않았기 때문에 손실됩니다. 손실된 커밋을 복구해야 하는 경우, "문제 해결"을 참조하세요.
커밋 확인하기
-
왼쪽 사이드바에서 기록을 클릭합니다.
-
검사 커밋을 마우스 오른쪽 단추로 클릭하고 커밋 체크 아웃을 선택합니다.
-
이제 리포지토리 표시줄의 현재 분기 항목에 검사 출력된 커밋의 SHA와 함께 "분리된 HEAD"가 표시됩니다.
-
"분리된 HEAD" 상태에서 나오려면 분기를 전환해야 합니다. 자세한 내용은 "GitHub Desktop에서 분기 관리하기"을(를) 참조하세요.
문제 해결
Git 명령줄에서 git reflog
명령을 사용하여 "분리된 HEAD" 상태로 만들어진 커밋을 복구할 수 있습니다. 메뉴 모음으로 이동하고, 리포지토리를 선택하고, 명령줄에서 열기를 클릭하여 GitHub Desktop에서 명령줄에서 리포지토리를 열 수 있습니다.
git reflog
명령은 커밋을 포함하여 리포지토리에서 발생한 이벤트의 출력을 표시합니다. git reflog
명령의 샘플 출력입니다.
81fa9136f8 (HEAD -> main) HEAD@{0}: checkout: moving from 8bd5e736a27a52a7e36a856b30e6f0582d341aa1 to main
8bd5e736a2 HEAD@{1}: commit: testing out a feature
22fa76c125 HEAD@{2}: checkout: moving from main to 22fa76c1250a2847305b9325752d941dbaa55983
8bd5e736a2 HEAD@{1}: commit: testing out a feature
행이 리포지토리가 "분리된 HEAD" 상태인 동안 만들어졌으므로 복구하려는 커밋입니다. 복구하려면 git cherry-pick 8bd5e736a2
을(를) 실행하여 리포지토리의 현재 분기에 커밋을 적용할 수 있습니다.
추가 참고 자료
- Git 설명서의 분리된 HEAD
- Git 설명서의 Git cherry-pick