Guia prático de Git
Introdução
O Git é uma ferramenta essencial para desenvolvedores que desejam controlar e gerenciar seu código-fonte de forma eficiente. Com ele, você pode acompanhar as alterações em seus projetos, colaborar com outros desenvolvedores e manter um histórico preciso do seu trabalho. Nesse artigo, vamos explorar os principais comandos de Git que todo desenvolvedor precisa dominar para ter sucesso no seu dia-a-dia. Além disso, vou incluir algumas dicas extras para tornar sua experiência com o Git ainda mais produtiva.
Configuração Inicial
Antes de começar a usar o Git, é importante configurar suas informações de usuário:
git config --global user.name "seu Nome" # Define o nome do usuário que será associado às suas alterações.
git config --global user.email "[email protected]" # Define o endereço de e-mail associado às suas alterações.
Essa configuração serve pra que o Git possa identificar quem fez cada alteração no código, e é importante que ela seja feita antes de começar a trabalhar em um projeto, isso vai ser a sua assinatura em cada commit.
Fluxo Básico de Trabalho
Iniciando um Repositório
git init # Inicializa um novo repositório Git no diretório atual.
git clone <url do repositório> # Clona um repositório Git existente para a sua máquina local.
Realizando Alterações
git status # Exibe o status atual do repositório, mostrando os arquivos modificados, adicionados ou removidos.
git add <nome do arquivo> # Adiciona um arquivo específico ao próximo commit.
git add . # Adiciona todos os arquivos modificados ao próximo commit.
git commit -m "mensagem do Commit" # Cria um novo commit com as alterações adicionadas.
git push # Envia os commits locais para o repositório remoto.
Atualizando o Repositório
git pull # Atualiza o repositório local com as alterações mais recentes do repositório remoto.
git fetch # Busca as alterações mais recentes do repositório remoto sem aplicá-las automaticamente no repositório local.
git merge # Combina as alterações de uma branch remoto com a branch atual.
Ramificação (Branching) e Fusão (Merging)
git branch # Lista todos as branches existentes no repositório.
git branch <nome da branch> # Cria uma nova branch.
git checkout <nome da branch> # Muda para a branch especificada.
git merge <nome da branch> # Combina as alterações da branch especificada com a branch atual.
git branch -d <nome da branch> # Exclui a branch especificada.
Dicas
git commit
O comando a seguir
git commit -am "mensagem de commit"
é equivalente a:
git add .
git commit -m "mensagem de commit"
git aliases
É possível criar aliases (apelidos) para comandos usando git:
git config --global alias.<nome do alias> <comando>
git stash
Use o comando
git stash
para "guardar" as modificações sem precisar dar commit, isso as remove da branch atual e salva para serem recuperadas depois, e quando for a hora é só usar
git stash pop
e as modificações vão retornar à branch atual.
Também é possível dar nome para cada salvamento usando o comando
git stash save <nome do salvamento>
e então ver a lista dos salvamentos com o comando
git stash list
onde cada um deles aparece com um índice do lado esquerdo. Em seguida é só escolher qual dos salvamentos deseja recuperar usando
git stash apply <índice do salvamento>
git log
Ao usar o comando git log adicione os argumentos a seguir para obter uma melhor visualização do histórico da branch
git log --graph --oneline --decorate
Para dar squash em um conjunto de commits em uma determinada branch usar o comando
git rebase <nome da branch> --interactive
assim é possível escolher entre os commits quais serão mantidos e quais serão combinados.
git clean
Para deletar apenas os arquivos não rastreados:
git clean -f
Para deletar arquivos e pastas não rastreados:
git clean -df
Para deletar arquivos ignorados:
git clean -f -X
Para remover arquivos ignorados e não ignorados:
git clean -xf
git checkout
O comando a seguir volta para a branch anterior ao último checkout.
git checkout -
Também é possível desfazer todas as alterações em um determinado arquivo usando o comando:
git checkout -- <nome do arquivo>
lazygit
O lazygit é uma ferramenta de linha de comando para visualizar as alterações feitas no repositório, semelhante ao git diff mas visualmente agradável e muito mais interativo.
No ubuntu a instalação é simples, basta executar os seguintes comandos a seguir:
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v*([^"]+)".*/\1/')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
sudo tar xf lazygit.tar.gz -C /usr/local/bin lazygit
Para instruções detalhadas de instalação consulte a página: https://github.com/jesseduffield/lazygit
Pra usar a ferramenta é só entrar na pasta do repositório e executar:
lazygit
Alterando commits
Se for o último commit é só usar o comando
git commit --amend -m "nova mensagem"
Para commits mais antigos:
1 - Copie o hash do commit que você deseja modificar usando
git log
2 - Use o comando
git rebase -i "hash do commit a ser modificado"~1
lembrando que o “~1” no final é necessário para que o commit que você modificar apareça na lista durante o rebase
3 - Na lista que vai abrir em seguida, do lado do commit que você quer modificar, onde estiver escrito pick escreva reword
4 - A seguir salve e feche o arquivo do rebase, assim que você fizer isso vai abrir automaticamente o editor com o commit que você quer editar aberto
5 - Faça as alterações desejadas, em seguida salve e feche o arquivo. A partir daí o commit foi modificado
6 - Use
git push -f
para sobrescrever o histórico do git no repositório remoto
Exibir a branch do git no terminal (Bash)
Basta adicionar o código a seguir no arquivo .bashrc:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
export PS1="\u@\h \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\] > "
Reinicie o terminal ou use o comando a seguir:
source ~/.bashrc
Agora é só entrar em uma pasta que contenha um repositório git e conferir o resultado.
Conclusão
Neste artigo, vimos os principais comandos de Git que você precisa conhecer para começar a usar o Git em seus projetos, além de algumas dicas extras que podem tornar sua experiência com o Git ainda mais produtiva. Mas o Git é uma ferramenta básica no fluxo de trabalho diário de qualquer desenvolvedor, então dominá-la é essencial, por isso recomendo que você não pare por aqui e continue estudando e praticando para se tornar um expert em Git.
Em caso de dúvidas ou sugestões fique à vontade pra deixar nos comentários ou entrar em contato pelo email [email protected]
.