Referência de Comandos Git Essenciais

Clonagem com Branch Específico

Para clonar apenas uma branch determinada, como a desenvolvimento:

git clone --branch desenvolvimento https://github.com/usuario/repositorio.git

Verificação de Estado do Repositório

O comando git status apresenta o estado atual entre o diretório de trabalho e a área de staging. Ele revela quais modificações foram preparadas para commit, quais permanecem pendentes e quais arquivos ainda não são rastreados pelo Git. Informações sobre histórico de commits requerem o uso de git log.

Adição de Arquivos ao Staging

Para incluir arquivos na área de preparação:

# Arquivos individuais
git add [arquivo1] [arquivo2]

# Diretório completo com subdiretórios
git add [diretorio]

# Todos os arquivos do diretório atual
git add .

Registro de Alterações

Para consolidar as mudanças da área de staging no repositório local:

git commit -m "descrição das alterações"

Envio para Repositório Remoto

O git push propaga as atualizações da branch local para o servidor remoto. Sua estrutura segue o padrão:

git push <remoto> <branch-local>:<branch-remota>

Exemplo prático enviando para a branch desenvolvimento:

git push origin desenvolvimento

Consulta de Histórico

Para visualizar o histórico de commits:

git log

Para um registro mais abrangente incluindo operações de reflog:

git reflog

Reversão de Commits

Para retornar a uma versão anterior específica:

git reset --hard <hash-do-commit>

Quando necessário desfazer o último commit mantendo as alterações em staging:

git reset --soft HEAD~1

Para descartar todas as modificações locais e commits não enviados:

git reset --hard HEAD

Sincronização com Repositório Remoto

O git pull recupera atualizações do repositório remoto e as integra à branch atual. Por padrão, executa git fetch seguido de git merge FETCH_HEAD.

Sintaxe completa:

git pull [opções] [<repositório> [<referência>…]]

Exemplo trazendo a branch recurso-x do remoto upstream para mesclar com a branch local atual:

git pull upstream recurso-x

Quando a branch remota possui o mesmo nome da local, pode-se simplificar:

git pull upstream

Se existe apenas um remoto configurado:

git pull

Para aplicar as mudanças via rebase em vez de merge:

git pull --rebase <remoto> <branch-remota>:<branch-local>

Gerenciamento de Branches

Listar todas as branches (locais e remotas):

git branch -a

Mudar para uma branch existente:

git checkout feature-nova

Criar e mudar para nova branch (certifique-se de commitar as alterações da branch atual antes):

git checkout -b release-2024

Preservação Temporária de Alterações

Quando há mudanças não commitadas impedindo a troca de branch, use o stash:

# Arquivar alterações temporariamente
git stash

# Trocar de branch
git checkout outra-branch

# Recuperar alterações arquivadas
git stash pop

Diferença entre Fetch e Pull

O git fetch baixa as atualizações do remoto sem aplicá-las automaticamente, permitindo revisão antes da integração:

# Baixar atualizações da branch principal
git fetch origin principal

# Comparar diferenças
git log -p principal..origin/principal

# Aplicar mesclagem manualmente
git merge origin/principal

Alternativa com branch temporária:

git fetch origin principal:temp
git diff temp
git merge temp

O git pull combina essas operações em único comando, executando fetch e merge sequencialmente:

git pull origin principal

A abordagem com fetch oferece maior controle, possibilitando inspecionar as mudanças antes de decidir pela mesclagem.

Configuração de Relacionamento entre Branches

O Git estabelece automaticamente vínculos de rastreamento durante o clone. Para configurar manualmente:

git branch --set-upstream principal origin/versao-estavel

Isso define que a branch local principal acompanha a remota origin/versao-estavel.

Tags: Git version-control branching Merge rebase

Publicado em 9-13 09:23