Comandos Essenciais do Git para Gerenciamento de Código

O Git é um sistema de controle de versão distribuído fundamental para o desenvolvimento de software moderno. Ele gerencia o histórico de alterações em um projeto, permitindo colaboração e rastreamento eficientes.

Estrutura de Diretórios do Git

O Git opera com três áreas principais:

  • Área de Trabalho (Working Directory): O diretório local onde você edita seus arquivos.
  • Área de Preparação (Staging Area): Um espaço intermediário onde você seleciona quais alterações farão parte do próximo commit. Arquivos adicionados aqui ficam em .git/index.
  • Repositório (Repository): O banco de dados onde o Git armazena o histórico completo do projeto e seus commits. Localizado na pasta .git.

Inicialização e Clonagem de Repositórios

Para começar a usar o Git em um projeto, você pode:

  • Inicializar um novo repositório: Crie um novo repositório Git em um diretório existente ou especifique um caminho. Isso gera a pasta oculta .git. ```bash

    Inicializa um repositório no diretório atual

    git init

    Inicializa um repositório em um diretório específico

    git init /caminho/para/seu/projeto

  • Clonar um repositório existente: Copie um repositório de um servidor remoto para sua máquina local. ```bash

    git clone https://servidor.remoto/projeto.git

    
    

Gerenciamento de Arquivos

  • git status: Verificando o Estado dos Arquivos

    Mostra o status dos arquivos na área de trabalho e na área de preparação.

    
    # Exibe o status detalhado dos arquivos
    git status
    
    # Exibe um status mais conciso
    git status -s
    
    

    Arquivos não rastreados podem ser ignorados globalmente adicionando seus padrões ao arquivo .gitignore.

  • git diff: Comparando Alterações

    Compara as diferenças entre diferentes estados do seu repositório.

    
    # Compara a área de trabalho com a área de preparação
    git diff
    
    # Compara a área de preparação com o último commit
    git diff --staged
    
    
  • git commit: Salvando Alterações no Repositório

    Registra as alterações preparadas na área de staging para o histórico do repositório.

    
    # Abre um editor para escrever a mensagem do commit
    git commit
    
    # Realiza o commit com uma mensagem em linha
    git commit -m "Mensagem descritiva do commit"
    
    # Adiciona e comita arquivos modificados em uma única etapa (arquivos novos ainda precisam de `git add`)
    git commit -a -m "Commit rápido para alterações modificadas"
    
    

    Após um commit, o Git informa qual branch foi atualizado e quais arquivos foram alterados.

  • git commit --amend: Modificando o Último Commit

    Permite alterar o commit mais recente. Útil para corrigir a mensagem do commit ou adicionar arquivos que foram esquecidos, sem criar um novo registro de commit.

    
    git commit --amend
    
    
  • git reset HEAD: Desfazendo o Preparo de Arquivos

    Remove arquivos da área de staging, movendo-os de volta para a área de trabalho (sem perder as modificações).

    
    # Desfaz o preparo de um arquivo específico
    git reset HEAD nome_do_arquivo
    
    
  • git checkout --: Descartando Alterações na Área de Trabalho

    Descarta todas as modificações feitas em um arquivo específico desde o último commit, restaurando-o para o estado do commit mais recente.

    
    # Descarta as alterações no arquivo especificado
    git checkout -- nome_do_arquivo
    
    

Interagindo com Repositórios Remotos

  • Visualizando Repositórios Remotos

    Lista os repositórios remotos configurados para o projeto local.

    
    # Lista os nomes dos repositórios remotos
    git remote
    
    # Lista os nomes e URLs dos repositórios remotos
    git remote -v
    
    

    Você pode adicionar múltiplos remotos para diferentes fontes de código.

    
    # Adiciona um novo repositório remoto com o alias 'novo_remoto'
    git remote add novo_remoto https://github.com/usuario/outro-projeto.git
    
    
  • git fetch: Baixando Dados Remotos

    Baixa objetos e referênccias de um repositório remoto, mas não mescla automaticamente as alterações no seu branch atual.

    
    # Baixa todas as atualizações do repositório 'origem'
    git fetch origem
    
    
  • git pull: Baixando e Mesclando Dados Remotos

    É uma combinação de git fetch seguido por git merge. Ele baixa as atualizações do repositório remoto e tenta mesclá-las automaticamente no seu branch local atual.

    
    # Baixa e mescla as atualizações do branch padrão do repositório 'origem'
    git pull origem
    
    
  • git push: Enviando Alterações para o Repositório Remoto

    Envia seus commits locais para um repositório remoto.

    
    # Envia os commits do branch local 'master' para o remoto 'origem'
    git push origem master
    
    
  • git remote show: Detalhes de um Repositório Remoto

    Exibe informações detalhadas sobre um repositório remoto específico, incluindo URLs de fetch/push e branches rastreados.

    
    git remote show origem
    
    
  • Gerenciando Remotos

    Permite renomear ou remover repositórios remotos configurados.

    
    # Renomeia um repositório remoto de 'antigo_nome' para 'novo_nome'
    git remote rename antigo_nome novo_nome
    
    # Remove um repositório remoto
    git remote remove nome_do_remoto
    
    

Gerenciamento de Branches

Branches no Git são caminhos independentes de desenvolvimento. O branch master (ou main) não possui um status especial por padrão.

  • Visualizando Branches

    
    # Lista todos os branches locais
    git branch
    
    # Lista branches locais que já foram mesclados no branch atual
    git branch --merged
    
    # Lista branches locais que ainda contêm trabalho não mesclado
    git branch --no-merged
    
    # Mostra o último commit de cada branch local
    git branch -v
    
    
  • Criando e Trocando de Branch

    
    # Cria um novo branch chamado 'novo_branch'
    git branch novo_branch
    
    # Muda para o branch 'outro_branch'
    git checkout outro_branch
    
    # Cria um novo branch e muda para ele imediatamente
    git checkout -b novo_branch_e_checkout
    
    
  • Visualizando Histórico com Ramificações

    Exibe o histórico de commits de forma gráfica, mostrando as ramificações.

    
    git log --oneline --decorate --graph --all
    
    
  • Mesclando Branches

    Combina o histórico de um branch em outro. É recomendado estar no branch de destino antes de mesclar.

    
    # Mude para o branch onde você quer receber as alterações
    git checkout master
    
    # Mescle o branch 'feature_branch' no branch atual
    git merge feature_branch
    
    

    Se um branch é um ancestral direto do outro, o Git realiza uma mesclagem "fast-forward". Caso contrário, um novo commit de mesclagem é criado. Conflitos podem ocorrer se as mesmas partes de um arquivo forem modificadas em ambos os branches.

  • Rebase de Branches (git rebase)

    Reorganiza a sequência de commits de um branch, aplicando-os sobre outra base. Isso resulta em um histórico linear e mais limpo.

    
    # Transfere os commits do 'feature_branch' para serem aplicados após o último commit do 'master'
    git checkout feature_branch
    git rebase master
    git checkout master
    git merge feature_branch
    
    # Uma forma mais direta de fazer o rebase e merge
    git rebase master feature_branch
    git merge feature_branch
    
    
  • Deletando Branches

    Remove um branch que não é mais necessário. O Git impede a exclusão de branches com trabalho não mesclado.

    
    # Deleta o branch 'branch_antigo' (se ele já foi mesclado)
    git branch -d branch_antigo
    
    # Força a deleção de um branch (use com cautela)
    git branch -D branch_antigo
    
    

Gerenciamento de Branches Remotos

Branches remotos são referências a branches em repositórios remotos. O nome origin é uma convenção para o repositório clonado originalmente.

  • Sincronizando Dados Remotos

    git fetch baixa dados remotos, e git pull baixa e mescla.

    
    # Baixa alterações do remoto 'origem'
    git fetch origem
    
    # Baixa e mescla alterações do remoto 'origem'
    git pull origem
    
    

Fluxos de Trabalho Comuns

  • Commit Direto em IDEs

    Algumas IDEs integram o Git de forma que o comando commit embutido já executa as etapas de git add e git commit, simplificando o fluxo para o usuário.

  • Fluxo de Emergência (Hotfix)

    Quando um bug crítico é descoberto em produção:

    1. Salve ou "pause" seu trabalho atual (ex: git stash).
    2. Mude para o branch de produção ou um branch de hotfix dedicado.
    3. Crie um novo branch para o hotfix.
    4. Corrija o bug, teste e comite a correção.
    5. Mescle o hotfix no branch de produção e publique a atualização.
    6. Volte para seu branch de desenvolvimento original e recupere seu trabalho pausado.

    Este fluxo garante que correções urgentes sejam aplicadas rapidamente sem interromper o desenvolvimento em andamento.

Tags: Git controle de versão git init git clone git status

Publicado em 7-2 05:41