Sávio Andres

Banner postagem: Guia de Comandos do Git

Guia de Comandos do Git

Alguns comandos interessantes do git para servir de guia no versionamento dos seus projetos

Se tem uma coisa que é fácil de esquecer são os comandos do Git, isso porque são nos momentos de mais aflição que precisamos lembrar um determinado comando que mal usamos para resolver o problema. Por isso, resolvi escrever esse artigo para servir de guia com comandos básicos para aqueles que procura uma solução rápida e simples para não perder tempo e forcar melhor no projeto.

O que é Git

O Git é um sistema de controle de versão distribuído, projetado para gerenciar projetos de software de todos os tamanhos e complexidades. O objetivo principal do Git é ajudar os desenvolvedores a colaborar em projetos de software, permitindo que eles acompanhem as mudanças no código-fonte, coordenem o trabalho em equipe e revertam para versões anteriores quando necessário.

Com o Git, é possível manter um registro completo de todas as mudanças realizadas no código-fonte, incluindo informações sobre quem fez as mudanças, quando foram feitas e por quê. Isso é fundamental para o trabalho em equipe, pois permite que os desenvolvedores trabalhem em seus próprios ramos (branch) de desenvolvimento, combinem suas mudanças com as de outros desenvolvedores (mesclagem) e revisem as alterações uns dos outros.

Além disso, o Git também oferece recursos como:

  • Ramificação de código: Os desenvolvedores podem criar ramos de desenvolvimento separados para trabalhar em recursos específicos ou correções de bugs, sem interferir no trabalho de outros desenvolvedores.

  • Mesclagem de código: Quando os desenvolvedores concluem seu trabalho em um ramo de desenvolvimento, eles podem mesclar as mudanças em outros ramos de desenvolvimento ou no branch principal do projeto.

  • Reversão de código: Se algo der errado durante o desenvolvimento, os desenvolvedores podem facilmente reverter para uma versão anterior do código-fonte e corrigir o problema.

  • Histórico de alterações: O Git mantém um registro completo de todas as mudanças no código-fonte, permitindo que os desenvolvedores vejam exatamente quando e por que uma mudança foi feita.

Esses recursos são extremamente valiosos para o desenvolvimento de software em equipe, ajudando os desenvolvedores a trabalharem de maneira mais eficiente, organizada e colaborativa. Por isso, o Git se tornou uma ferramenta fundamental para desenvolvedores e equipes de desenvolvimento em todo o mundo.

Comandos de configuração

Segue abaixo três comandos para configurar o git na sua máquina, o primeiro serve para definir o nome do usuário no qual fará os commits, o segundo serve para configurar o e-mail de commit. As demais configurações possíveis podem ser listadas inserido o terceiro comando.

git config --global user.name "Sávio Andres"
git config --global user.email mail@savio.pw
git config --list

Comandos básicos

  • git init: cria um novo repositório Git vazio.
  • git add: adiciona um arquivo ou diretório para ser rastreado pelo Git.
    • git add .: adiciona dos os arquivos.
    • git add nome_arquivo.xyz: adiciona um arquivo específico.
    • git add diretorio: adiciona um diretório (pasta) completo.
  • git commit: cria um novo commit no repositório com todas as mudanças que foram adicionadas usando o comando git add.
    • git commit -m "Comentário": cria o commit com o um comentário sobre as mudanças que foram adicionadas.

Comandos de sincronização com o remoto

  • git remote: adiciona um repositório remoto.
    • git remote add origin <endereco>.git: origin foi o nome dado ao repositório remoto, mas pode ser outro.
    • git remote rename origin projeto-x: renomeia o repositório remoto de "origin" para qualquer outro nome, no caso, "projeto-x".
    • git remote rm projeto-x: remove o repositório remoto do local.
  • git fetch: busca por novas atualizações do repositório remoto e atualizar o registro de branchs e tags locais.
  • git push: envia os commits para um repositório remoto.
    • git push origin master: nome dado ao repositório remoto e o nome da branch na qual quer enviar os commits.
  • git pull: busca as alterações do repositório remoto e mescla-as com as alterações locais.
    • git pull origin master: nome dado ao repositório remoto e o nome da branch na qual quer buscar as alterações.
  • git clone: cria uma cópia local de um repositório remoto.
    • git clone <endereco>.git: endereço do repositório remoto.

Comandos de alteração

  • git status: mostra o estado atual do repositório, incluindo arquivos modificados, arquivos adicionados e commits pendentes.
  • git diff: exibe as diferenças entre o código atual e o último commit realizado no branch atual.
    • git diff commitA commitB: compara as diferenças entre dois commits específicos.
    • git diff branchA branchB: exibe as diferenças entre duas branches diferentes.
  • git log: exibe um registro completo de todos os commits do repositório.
    • git log --author="Nome do Autor": filtra o histórico de commits pelo autor especificado.
  • git stash: salva temporariamente as mudanças que não estão prontas para um commit.
    • git stash save "Nome do stash": cria um novo stash com um nome descritivo.
    • git stash list: lista todos os stashes criados no repositório.
    • git stash apply: aplica o stash mais recente ao diretório de trabalho, mantendo o stash disponível para uso futuro.
    • git stash apply stash@{2}: aplica um stash específico (identificado pelo índice ou pelo nome) ao diretório de trabalho.
    • git stash pop: aplica o stash mais recente ao diretório de trabalho e remove-o da lista de stashes.
    • git stash drop stash@{1}: remove um stash específico da lista de stashes.
    • git stash branch nome_da_branch: cria uma nova branch a partir do stash mais recente e aplica o stash na nova branch.
  • git reset: remove as alterações do diretório de trabalho e do índice, mas preserva o histórico de commits.
    • git reset --soft HEAD~1: desfaz o commit mais recente, movendo as alterações para o diretório de trabalho, deixando as alterações no índice.
    • git reset --hard HEAD~3: desfaz os três commits mais recentes, descartando completamente as alterações do diretório de trabalho e do índice.
    • git reset --mixed HEAD~2: desfaz os dois commits mais recentes, removendo as alterações do diretório de trabalho, mas mantendo as alterações no índice.
  • git revert <commit>: cria um novo commit que desfaz as alterações introduzidas pelo commit especificado, revertendo as modificações para o estado anterior.
    • git revert HEAD: desfaz o commit mais recente, criando um novo commit que reverte as alterações introduzidas por ele.
  • git tag: cria, lista ou deleta tags. "git tag", lista todas as tags existentes no repositório.
    • git tag nome_tag: cria uma nova tag com o nome especificado. Por exemplo, git tag v1.0.0 cria uma tag chamada "v1.0.0"
    • git tag -d nome_tag: remove a tag especificada do repositório local.
    • git tag nome_tag commit: cria uma tag no commit específico.

Comandos de branch

  • git branch: cria, renomeia ou exclui branches. "git branch", lista todas as branches presentes no repositório.
    • git branch nome_branch: cria uma nova branch com o nome especificado.
    • git branch -d nome_branch: remove a branch especificada do repositório local.
  • git checkout: muda para um branch diferente ou para um commit específico.
    • git checkout -b novo-branch: cria um novo branch com o nome "novo-branch".
    • git checkout outra-branch: troca de branch.
  • git merge: mescla as alterações de um branch em outro.
    • git merge nome_branch: mescla a branch especificada na branch atual;

Comandos de exemplo

Digamos que você deseja criar um repositório local (na própria máquina) e depois enviar os commits para um repositório remoto, que pode ser GitHub, GitLab ou qualquer outro repositório Git em um servidor.

git init
git add .
git commit -m "Comentário"
git remote add origin <endereco>.git
git push origin master

Após configurar o remote, não é preciso inserir o comando "git remote add origin <endereco>.git" novamente, para isso, quando necessário, basta indicar o nome escolhido para este remote, que nesse caso foi "origin".

Demonstração básica

A seguir é apresentado um curto vídeo demonstrando a utilização de alguns comandos básicos do Git:

Git Ignore

Para que o Git ignore determinados arquivos para que não sejam commitados, basta criar um arquivo com o nome de .gitignore e adicionar o nome dos arquivos, do diretório ou de arquivos de determinada extensão a serem ignorados, para ignorar arquivos de determinada extensão basta escrever *.xyz, o asterisco serve como caractere coringa informando ao gitignore que qualquer caractere anterior à .xyz seja considerado.