DEV Community

ダニエリ for WoMakersCode

Posted on • Edited on

3 1

[Tutorial Git] git checkout: Navegando entre ramos e snapshots, e descartando modificações

Mudando de branch (ramo)

Para mudar de um determinado ramo, digite:

$ git checkout <nome_do_ramo>
Enter fullscreen mode Exit fullscreen mode
  • $ indica que você deve usar o usuário comum para fazer essa operação.
  • escolha o nome do ramo que você deseja, sem os sinais < e >.

Ao voltar para um determinado branch, o ponteiro head estará no último commit feito nesse ramo.

O HEAD é um ponteiro no branch que normalmente aponta para o último commit feito.

Navegando entre snapshots dos commits

Às vezes é necessário verificar com detalhes quais modificações foram feitas no seu código/projeto. Então para navegar entre os snapshots fazemos:

$ git checkout <chave_do_commit>
Enter fullscreen mode Exit fullscreen mode

O que esse comando faz é apontar o HEAD para um determinado commit

Para voltar um commit anterior, digite:

$ git checkout HEAD~1
Enter fullscreen mode Exit fullscreen mode
  • HEAD~1 desloca o ponteiro HEAD para o commit anterior ao atual.

Aqui é importante notar que será criado um branch temporário.

Você pode confirmar isso através do comando

$ git branch
Enter fullscreen mode Exit fullscreen mode

Exemplo:

branch temporária

Nesse ponto, você estará visualizando as alterações que foram feitas até esse commit.

Após a visualização de todo o conteúdo do(s) arquivo(s), você pode voltar ao ramo principal com o comando:

$ git checkout <nome_do_seu_branch_principal>
Enter fullscreen mode Exit fullscreen mode

Exemplo:

voltando ao ramo master

Aqui podemos ver uma mensagem onde é mostrado em que posição o ponteiro HEAD estava, ou seja, de onde viemos.

Exemplo de uso do checkout:

Temos no nosso ramo master os seguintes arquivos

listando arquivos no ramo master

E queremos verificar o projeto no ponto indicado pela imagem abaixo

git log

Sendo assim, fazemos

usando o checkout para ver um determinado commit

Verificando novamente os arquivos do projeto, temos

listando os arquivo novamente

Podemos perceber que temos alguns arquivos a mais que não tínhamos quando o ponteiro HEAD estava no último commit.

Aqui podemos ver todo o projeto como ele estava num commit passado. E então retornamos ao ramos principal.

Fazendo alterações

Caso seja necessário alterações no projeto em um snapshot passado, basta fazer um commit após essas alterações.

Para não perder as informações é necessário criar um novo branch, dessa maneira:

$ git branch <nome_do_novo_ramo> <chave_do_útimo_commit>
Enter fullscreen mode Exit fullscreen mode

Em seguida basta ir até o novo branch criado com o comando

$ git checkout <nome_do_novo_ramo>
Enter fullscreen mode Exit fullscreen mode

E, caso seja preciso, fazer o merge com o branch principal.

Exemplo:

Pegando o mesmo exemplo anterior, fiz um commit após algumas alterações.

commit no branch temporário

Observe que após o commit houve uma mudança na chave

estado do git após o commit

Como podemos perceber, essa é a chave do commit feito há pouco

git log

Para que esse commit não seja perdido, temos que criar um novo branch com essa chave nova, assim

branch nova e chave nova

Aqui, podemos confirmar que o novo branch foi criado

git branch

Agora só precisamos voltar ao ramo principal

voltando ao ramo principal

O que aconteceu aqui, no fluxo do Git, é algo semelhante ao mostrado na imagem abaixo.

fluxo do git

Observação:

  • Recomenda-se usar o checkout para visualizar as snapshots dos commits apenas quando o Working directory estiver limpo, para evitar conflitos.

working directory limpo

Descartando modificações

O checkout também pode ser usado para descartar as modificações feitas em um arquivo, assim

$ git checkout <nome_do_arquivo>
Enter fullscreen mode Exit fullscreen mode

Exemplo:

Temos dois arquivos que foram modificados e queremos descartar as modificações (voltando ao arquivo anterior as mudanças).

dois arquivos modificados

Usando com comando git checkout com os dois arquivos ao mesmo tempo:

usando o checkout para descartar alterações

Image of AssemblyAI tool

Challenge Submission: SpeechCraft - AI-Powered Speech Analysis for Better Communication

SpeechCraft is an advanced real-time speech analytics platform that transforms spoken words into actionable insights. Using cutting-edge AI technology from AssemblyAI, it provides instant transcription while analyzing multiple dimensions of speech performance.

Read full post

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay