# Fazer check-out de um commit no GitHub Desktop

Você pode usar o GitHub Desktop para fazer check-out de um commit anterior em seu repositório.

## Sobre o check-out de um commit

O check-out de um commit permite exibir seu repositório em um estado anterior sem precisar criar um novo branch ou modificar um branch existente. Isso pode ser útil durante a depuração, pois permite que você veja se existe algum bug em seu repositório em um commit anterior.

O check-out de um commit coloca seu repositório em um estado "HEAD desanexado". Na terminologia Git, "HEAD" é a referência que aponta para a dica, ou commit mais recente, de um branch nomeado em seu repositório. Um estado "HEAD desanexado" significa que HEAD se refere a um commit específico, mas não a um branch nomeado em seu repositório.

> \[!NOTE]
> Quaisquer commits realizados no estado "HEAD desassociado" serão perdidos ao mudar de branch, uma vez que esses commits não foram realizados em um branch nomeado. Se precisar recuperar os commits perdidos, confira [Solução de problemas](#troubleshooting).

## Fazer check-out de um commit

1. Na barra lateral esquerda, clique em **Histórico**.

   ![Captura de tela da guia "Histórico" na barra lateral. Acima de uma lista de confirmações, o botão da guia "Histórico" está realçado com um contorno laranja.](/assets/images/help/desktop/history-tab-in-commit-sidebar.png)
2. Clique com o botão direito do mouse no commit de que você gostaria de fazer check-out e selecione **Fazer check-out do commit**.

![Captura de tela de uma lista de commits na guia "Histórico". Ao lado de um commit, em um menu de contexto, a opção "Checkout Commit" está destacada em laranja.](/assets/images/help/desktop/checkout-commit.png)

1. O item **<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> Current Branch** na barra do repositório agora mostrará "HEAD desanexado", junto com o SHA do commit do qual foi feito check-out. ![Captura de tela da barra do repositório. O item "Ramificação atual" mostra um estado "HEAD desanexado" e é realçado com um contorno laranja.](/assets/images/help/desktop/branch-item.png)
2. Para sair do estado "HEAD desanexado", você precisará alternar branches. Para saber mais, confira [Gerenciar branches no GitHub Desktop](/pt/desktop/making-changes-in-a-branch/managing-branches-in-github-desktop#switching-between-branches).

## Solução de problemas

Você pode recuperar os commits que foram feitos em um estado "HEAD desacoplado" usando o comando `git reflog` da linha de comando do Git. Você pode abrir seu repositório na linha de comando de GitHub Desktop acessando a barra de menus, selecionando **Repositório** e clicando em **Abrir na linha de comando**.

O comando `git reflog` exibirá a saída dos eventos que aconteceram em seu repositório, incluindo commits. A seguir uma saída de amostra do comando `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
```

A linha `8bd5e736a2 HEAD@{1}: commit: testing out a feature` é o commit que queremos recuperar, já que foi feito enquanto o repositório estava em um estado "HEAD desanexado". Para recuperá-lo, você pode executar `git cherry-pick 8bd5e736a2` para aplicar o commit à ramificação atual no seu repositório.

## Leitura adicional

* [HEAD desanexado](https://git-scm.com/docs/git-checkout#_detached_head) na documentação do Git
* [Git cherry-pick](https://git-scm.com/docs/git-cherry-pick) na documentação do Git