# GitHub Desktop 내에서 커밋 확인

GitHub Desktop을(를) 사용하여 리포지토리에서 이전 커밋을 검사할 수 있습니다.

## 커밋 검사에 대한 정보

커밋을 체크 아웃하면 새 분기를 만들거나 기존 분기를 수정할 필요 없이 이전 상태의 리포지토리를 볼 수 있습니다. 이전 커밋 리포지토리에 버그가 있는지 확인할 수 있으므로 디버깅할 때 유용할 수 있습니다.

커밋을 체크 아웃하면 리포지토리가 "분리된 HEAD" 상태가 됩니다. Git 용어에서 "HEAD"는 저장소 내 지정된 브랜치의 최신 커밋, 즉 브랜치의 끝점을 가리키는 참조입니다. "분리된 HEAD" 상태는 HEAD가 리포지토리의 명명된 분기에 있지 않고 특정 커밋을 참조한다는 의미입니다.

> \[!NOTE]
> “분리된 HEAD” 상태에서 수행된 모든 커밋은 분기를 전환할 때 손실됩니다. 이러한 커밋은 명명된 분기에서 수행되지 않았기 때문에 손실됩니다. 손실된 커밋을 복구해야 하는 경우, [문제 해결](#troubleshooting)을 참조하세요.

## 커밋 확인하기

1. 왼쪽 사이드바에서 **기록**을 클릭합니다.

   ![사이드바의 "기록" 탭 스크린샷. 커밋 목록 위에 "기록" 탭 단추가 주황색 윤곽선으로 강조 표시됩니다.](/assets/images/help/desktop/history-tab-in-commit-sidebar.png)
2. 체크아웃할 커밋을 마우스 오른쪽 단추로 클릭하고 **커밋 체크아웃**을 선택합니다.

!["History" 탭의 커밋 목록을 보여 주는 스크린샷 커밋 옆에 있는 상황에 맞는 메뉴에서 "Checkout Commit" 옵션이 주황색 윤곽선으로 표시됩니다.](/assets/images/help/desktop/checkout-commit.png)

1. 이제 리포지토리 표시줄의 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-branch" aria-label="git-branch" role="img"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg> 현재 브랜치** 항목에 체크아웃된 커밋의 SHA와 함께 "Detached HEAD"가 표시됩니다. ![리포지토리 표시줄의 스크린샷. "현재 브랜치" 항목은 "Detached HEAD" 상태를 표시하며 주황색 윤곽선으로 강조되어 있습니다.](/assets/images/help/desktop/branch-item.png)
2. "Detached HEAD" 상태를 종료하려면 브랜치를 전환해야 합니다. 자세한 내용은 [GitHub Desktop에서 분기 관리하기](/ko/desktop/making-changes-in-a-branch/managing-branches-in-github-desktop#switching-between-branches)을(를) 참조하세요.

## 문제 해결

Git 명령줄에서 `git reflog` 명령을 사용하여 "분리된 HEAD" 상태로 만들어진 커밋을 복구할 수 있습니다. 메뉴 모음으로 이동하고, 리포지토리를 선택하고, **명령줄에서 열기**를 클릭하여 GitHub Desktop에서 명령줄에서 **리포지토리**를 열 수 있습니다.

`git reflog` 명령은 커밋을 포함하여 리포지토리에서 발생한 이벤트의 출력을 표시합니다.
`git reflog` 명령의 샘플 출력입니다.

```shell
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](https://git-scm.com/docs/git-checkout#_detached_head)
  ```
* ```
            Git 설명서의 [git-cherry-pick](https://git-scm.com/docs/git-cherry-pick)
  ```