Repository navigation
Comandos Explicados no Detalhe
Explicação aprofundada dos principais comandos do Git, com contexto de uso, flags importantes e exemplos práticos.
Dica Pedagógica
Pense no Git como um videogame: o
addé preparar o inventário, ocommité o Save Point e opushé carregar o seu progresso para o servidor na nuvem.
Veja o básico aqui, no artigo inicial desta wiki.
Para repositórios com caminhos de arquivo muito longos (comum no Windows):
git config --system core.longpaths trueBranches (ramificações) permitem trabalhar em funcionalidades isoladas sem afetar o código principal.
git checkout remotes/origin/branch-nameMuda para uma branch que existe apenas no servidor. Importante: você entra em um estado chamado "detached HEAD", ou seja, está visualizando o código, mas não pode gravar alterações diretamente ali.
git checkout developMuda para a branch local chamada develop. É como trocar de "pasta de trabalho" para outra versão do projeto.
git checkout -b feature/xxxAtalho que cria uma nova branch chamada feature/xxx e muda imediatamente para ela.
git branch -d feature/xxxApaga a branch feature/xxx localmente. Só funciona se as alterações já tiverem sido mescladas em outro lugar - isso protege contra perda de dados.
Esses comandos trazem novidades do servidor para o seu computador local.
git fetch -v --progress originBaixa as novidades do servidor (origin) sem misturá-las com o código atual. O flag -v (verbose) mostra detalhes e --progress exibe a barra de progresso.
git fetch --allIgual ao anterior, mas busca atualizações de todos os repositórios remotos configurados, não apenas do principal.
git pull -v --progress --no-rebase originFaz o download e mescla (merge) o código do servidor na sua branch atual. O flag --no-rebase garante que o Git use o método padrão de mesclagem.
git pull --allTenta atualizar todas as suas branches locais com as informações de todos os remotos.
Aqui é onde você registra o seu progresso e o compartilha com a equipe.
git add *Prepara todos os arquivos modificados para serem gravados (adiciona-os à staging area). Prefira git add . para incluir também arquivos ocultos.
git commit -m "comentários"Grava permanentemente as alterações preparadas com uma mensagem descritiva. É a "foto" do seu código naquele momento - ela ficará no histórico para sempre.
git push originEnvia suas branches locais para o servidor padrão (origin).
git push --progress origin branchEnvia uma branch específica para o servidor, exibindo a barra de progresso do upload.
git revert <número-do-hash>Cria um novo commit que desfaz as mudanças de um commit anterior. É a forma segura de reverter, pois não apaga o histórico.
Note
O número do hash do commit pode ser obtido com git log ou git log --oneline.
git reset --hard HEAD~1Warning
Cuidado! Apaga todas as alterações locais que ainda não foram enviadas e volta o código exatamente para o estado do último commit. Essa ação não pode ser desfeita.
O arquivo .gitignore instrui o Git a ignorar arquivos e diretórios específicos - eles não serão rastreados nem aparecerão no git status.
Crie o arquivo sempre na raiz do repositório.
Veja o básico aqui, no artigo inicial desta wiki.
Tags marcam pontos específicos no histórico - normalmente usadas para sinalizar versões de release.
git tag # Lista todas as tags existentes
git tag v1.0.0 # Cria uma tag leve no commit atual
git tag -a v1.0.0 -m "Release 1.0" # Cria uma tag anotada com mensagem
git push origin v1.0.0 # Envia uma tag específica para o remoto
git push origin --tags # Envia todas as tags locais para o remotoTags leves são apenas um ponteiro para um commit. Tags anotadas armazenam metadados completos (autor, data, mensagem) e são a escolha recomendada para releases públicas.
O stash é uma "pilha" de alterações incompletas que você quer salvar sem fazer commit.
git stash # Guarda alterações não commitadas na pilha
git stash push -m "WIP: login" # Guarda com uma mensagem descritiva
git stash list # Lista todos os stashes salvos
git stash pop # Restaura o mais recente e o remove da lista
git stash apply stash@{1} # Restaura um stash específico (sem remover)
git stash drop stash@{0} # Remove um stash específico da lista
git stash clear # Remove todos os stashes salvosNote
Use stash ao precisar trocar de branch rapidamente sem perder alterações em andamento. Lembre-se de dar pop antes de fechar o projeto.
Para quando algo não sai como planejado ou o servidor muda.
git merge --abortSe você tentou mesclar duas branches e houve conflito (código sobreposto), esse comando cancela tudo e volta ao estado anterior ao merge.
git remote set-url origin new.git.url/hereInforma ao Git que o endereço do servidor (onde o código é armazenado online) mudou para um novo link.
Um cenário típico de desenvolvimento de uma nova funcionalidade:
1. git checkout -b feature/login → Cria a branch para a tarefa
2. (escreva o código...)
3. git add * → Prepara os arquivos modificados
4. git commit -m "Adiciona formulário de login" → Salva localmente
5. git push origin feature/login → Envia para o servidor
6. (abrir Pull Request na interface do GitHub/GitLab)
7. git branch -d feature/login → Remove a branch local após merge
Note
A ação recomendada é sempre realizar o merge por meio de um Pull Request (ou Merge Request) dentro da ferramenta de versionamento, e não diretamente pelo terminal. Isso garante revisão de código e rastreabilidade.