Verificando um Commit Específico com Git Checkout
Outra funcionalidade retida por git checkout
é a capacidade de verificar um commit específico. Isso coloca você em um estado "detached HEAD" (HEAD destacado), permitindo que você inspecione o projeto naquele ponto da história. git switch
não possui essa capacidade.
Primeiro, vamos encontrar o hash do commit do commit inicial.
Certifique-se de estar no diretório do projeto:
cd ~/project
Visualize o histórico de commits:
git log --oneline
Você verá uma saída semelhante a esta, com os hashes dos commits:
<commit_hash_development> (HEAD -> development) Initial commit
<commit_hash_main> (main, feature-branch) Initial commit
Observe que os hashes dos commits serão diferentes no seu ambiente. Copie o hash do commit para o "Initial commit".
Agora, use git checkout
seguido pelo hash do commit para verificar esse commit específico. Substitua <commit_hash>
pelo hash real que você copiou.
git checkout <commit_hash>
Você verá uma saída indicando que você está em um estado detached HEAD:
Note: switching to '<commit_hash>'
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
HEAD is now at <commit_hash> Initial commit
Você agora está visualizando o projeto como era no momento do commit inicial. Para retornar a uma branch, você pode usar git switch
ou git checkout
para alternar de volta para uma branch como development
ou main
.
Vamos alternar de volta para a branch development
usando git switch
:
git switch development
Você verá uma saída confirmando a alternância:
Switched to branch 'development'
Você usou com sucesso git checkout
para explorar um commit específico e, em seguida, retornou a uma branch usando git switch
.