Como Verificar se um Commit Git Foi Enviado (Push)

GitBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se um commit Git foi enviado para um repositório remoto. Exploraremos diferentes métodos para alcançar isso, começando por buscar (fetching) as alterações de um remoto e usando git log @{u} para comparar os branches local e remoto.

Em seguida, você aprenderá como usar git branch -r --contains para identificar os branches remotos que contêm um commit específico e, finalmente, verificar o status do envio (push) inspecionando diretamente o branch remoto. Essa abordagem prática fornecerá habilidades para determinar com confiança o status do envio (push) de seus commits Git.

Buscar (Fetch) Remoto e Verificar git log @{u}

Nesta etapa, aprenderemos como buscar (fetch) as alterações de um repositório remoto e ver como nosso branch local se compara ao branch remoto usando git log @{u}.

Primeiro, vamos simular ter um repositório remoto. Em um cenário real, isso estaria em uma plataforma como GitHub ou GitLab, mas para este laboratório, usaremos um diretório local como nosso "remoto".

Navegue até o diretório do seu projeto:

cd ~/project/my-time-machine

Agora, vamos adicionar um remoto chamado origin apontando para um repositório remoto simulado. Assumiremos que um repositório remoto foi configurado na seção setup.

git remote add origin ../my-time-machine-remote

Este comando informa ao seu repositório Git local que existe outro repositório localizado em ../my-time-machine-remote e o estamos chamando de origin.

Agora, vamos buscar (fetch) as últimas alterações deste remoto. O comando git fetch baixa commits, arquivos e refs de um repositório remoto para seu repositório local. Ele não mescla ou modifica automaticamente seu trabalho atual.

git fetch origin

Você deve ver uma saída indicando que o Git está buscando (fetching) do remoto.

Após buscar (fetching), podemos usar git log @{u} (ou git log origin/master neste caso, pois origin/master é o branch upstream para master) para ver os commits no branch remoto que ainda não estão em nosso branch local. A sintaxe @{u} ou @{upstream} se refere ao branch upstream do branch atual.

git log @{u}

Como nosso branch master local foi criado do zero e o branch master remoto (simulado) também começou vazio e ainda não adicionamos nenhum commit ao remoto, este comando pode não mostrar nenhuma saída, ou pode mostrar o commit inicial se o remoto foi inicializado com um. A parte importante é entender o que este comando faz: ele mostra os commits que estão no branch upstream (origin/master) mas não no seu branch local atual (master).

Entender a diferença entre seu branch local e o branch remoto é crucial para colaboração e manter seu projeto atualizado. git fetch e git log @{u} são ferramentas poderosas para inspecionar o estado do repositório remoto sem alterar seu diretório de trabalho local.

Usar git branch -r --contains

Nesta etapa, exploraremos como usar o comando git branch -r --contains para encontrar quais branches remotos contêm um commit específico. Isso é útil quando você deseja saber se uma alteração específica foi incluída em um branch remoto.

Primeiro, certifique-se de estar no diretório do seu projeto:

cd ~/project/my-time-machine

Agora, vamos criar um novo commit em nosso repositório local. Isso nos dará um commit para pesquisar no remoto.

echo "Adding another message" >> message.txt
git add message.txt
git commit -m "Add another message"

Você deve ver a saída confirmando o novo commit.

Agora, vamos usar git log --oneline para ver o histórico e obter o hash do commit do nosso último commit.

git log --oneline

Copie o hash do commit (a sequência curta de caracteres) do commit com a mensagem "Add another message". Ele se parecerá com algo como abcdefg.

Agora, vamos usar git branch -r --contains com o hash do commit que você acabou de copiar. Substitua YOUR_COMMIT_HASH pelo hash real.

git branch -r --contains YOUR_COMMIT_HASH

Como ainda não enviamos (push) este novo commit para o repositório remoto (origin), este comando não deve mostrar origin/master na saída. Isso ocorre porque o branch remoto origin/master ainda não contém o commit que você acabou de criar localmente.

A parte git branch -r lista os branches de rastreamento remoto. A parte --contains YOUR_COMMIT_HASH filtra esta lista para mostrar apenas os branches que contêm o commit especificado.

Este comando é uma maneira poderosa de verificar o status de seus commits em relação aos branches remotos. Ele ajuda você a entender se suas alterações foram integradas ao repositório remoto.

Verificar com Branch Remota

Nesta etapa final, enviaremos (push) nosso commit local para o repositório remoto e, em seguida, usaremos git branch -r --contains novamente para verificar se o branch remoto agora contém nosso commit.

Primeiro, certifique-se de estar no diretório do seu projeto:

cd ~/project/my-time-machine

Agora, vamos enviar (push) nosso branch master local para o remoto origin.

git push origin master

Você deve ver a saída indicando que seu commit está sendo enviado para o repositório remoto.

Após a conclusão do push, vamos obter o hash do commit que queremos verificar. Use git log --oneline novamente:

git log --oneline

Copie o hash do commit com a mensagem "Add another message".

Agora, use git branch -r --contains com o hash do commit que você acabou de copiar. Substitua YOUR_COMMIT_HASH pelo hash real.

git branch -r --contains YOUR_COMMIT_HASH

Desta vez, você deve ver origin/master na saída. Isso confirma que seu commit foi enviado (pushed) com sucesso para o repositório remoto e o branch remoto origin/master agora contém este commit.

Este processo de enviar (push) suas alterações e, em seguida, verificá-las no branch remoto é um fluxo de trabalho comum no Git, especialmente ao colaborar com outras pessoas. Ele garante que suas contribuições estejam disponíveis para o restante da equipe.

Você agora buscou (fetched) com sucesso de um remoto, usou git branch -r --contains para verificar um commit, enviou (pushed) suas alterações e verificou o commit no branch remoto. Essas são habilidades essenciais para trabalhar com repositórios remotos no Git.

Resumo

Neste laboratório, aprendemos como verificar se os commits Git locais foram enviados (pushed) para um repositório remoto. Começamos simulando um repositório remoto e adicionando-o como um remoto origin ao nosso projeto local. Em seguida, usamos git fetch origin para recuperar as informações mais recentes do remoto sem modificar nosso estado de trabalho local.

Após o fetch, exploramos o comando git log @{u}, que é uma maneira poderosa de comparar nosso branch local com seu branch upstream (a montante) configurado (neste caso, origin/master). Este comando ajuda a visualizar os commits que existem no remoto, mas não localmente, fornecendo informações sobre o status de sincronização do nosso branch. Embora a saída inicial possa estar vazia se nenhum commit foi enviado (pushed), entender este comando é crucial para identificar os commits que ainda não foram compartilhados com o remoto.