Skip to main content

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 um 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.

Nota: os commits feitos em um estado "HEAD desanexado" serão perdidos ao alternar branches, pois esses commits não foram feitos em um branch nomeado. Se você precisar recuperar os commits perdidos, confira "Solução de problemas".

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.

  2. Clique com o botão direito do mouse no commit de que você gostaria de fazer check-out e selecione Fazer checkout 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 "Fazer checkout do commit" é realçada com um contorno laranja.

  3. O item Branch Atual, 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 "Branch Atual" mostra um estado "HEAD desanexado" e é realçado com um contorno laranja.

  4. Para sair do estado "HEAD desanexado", você precisará alternar branches. Para obter mais informações, confira "Gerenciar branches no GitHub Desktop".

Solução de problemas

Você pode recuperar os commits que foram feitos em um estado "HEAD desanexado" 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. Veja a seguir uma saída de amostra comando 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

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 ao branch atual em seu repositório.

Leitura adicional