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.