Estados no Git
Modificado (modified): Arquivos foram modificados, mas ainda não estão preparados para commit.
Preparado (staged/index): Arquivos estão prontos para serem comitados.
Consolidado (committed): Alterações foram salvas no repositório local.
Ajuda no Git
Ajuda Geral:
git help
Ajuda para um comando específico:
git help <comando>
Ex.: git help add, git help commit
Configurações do Git
Geral
As configurações do Git são armazenadas no arquivo .gitconfig, que pode estar no diretório do usuário no Sistema Operacional (Ex.: Windows: C:Users<nome_usuario> ou Unix-like: /home/<nome_usuario>/).
Configurações comuns
Setar nome de usuário:
git config –global user.name “Nome do Usuário”
Setar email:
git config –global user.email “email@dominio.com”
Setar editor padrão:
git config –global core.editor vim
Setar ferramenta de merge:
git config –global merge.tool vimdiff
Setar arquivo global de exclusões:
git config –global core.excludesfile ~/.gitignore
Listar configurações:
git config –list
Ignorar Arquivos com .gitignore
Arquivos e diretórios especificados no .gitignore serão ignorados pelo Git.
Global: Localizado no diretório do usuário e aplica-se a todos os repositórios.
Por Repositório: Armazenado no diretório do repositório e aplicável apenas a esse repositório específico.
Repositório Local
Criar novo repositório
git init
Verificar o estado dos arquivos/diretórios
git status
Adicionar arquivos à área de stage
Arquivo específico: git add <arquivo>
Diretório específico: git add <diretório>
Todos os arquivos: git add .
Adicionar arquivo ignorado: git add -f <arquivo>
Comitar alterações
Comitar um arquivo: git commit <arquivo>
Comitar vários arquivos: git commit <arquivo1> <arquivo2>
Comitar com mensagem: git commit -m “mensagem do commit”
Remover arquivos/diretórios
Remover arquivo: git rm <arquivo>
Remover diretório: git rm -r <diretório>
Histórico de commits
Exibir histórico completo: git log
Histórico com diff das últimas duas alterações: git log -p -2
Resumo do histórico: git log –stat
Histórico em uma linha: git log –pretty=oneline
Histórico com formatação personalizada:
git log –pretty=format:”%h – %an, %ar : %s”
Onde: %h = Hash abreviada, %an = Nome do autor, %ar = Data relativa, %s = Mensagem de commit
Desfazendo alterações
Desfazer alteração local (sem stage): git checkout — <arquivo>
Desfazer alteração no stage: git reset HEAD <arquivo>
Repositório Remoto
Exibir repositórios remotos
git remote -v
Vincular repositório local a remoto
git remote add origin <url-repositório>
Enviar alterações para o repositório remoto
Primeiro push: git push -u origin master
Demais pushes: git push
Atualizar o repositório local
Baixar e aplicar alterações: git pull
Buscar alterações sem aplicá-las: git fetch
Clonar repositório remoto
git clone <url-repositório>
Trabalhando com Tags
Criar tag leve: git tag <nome-da-tag>
Criar tag anotada: git tag -a <nome-da-tag> -m “mensagem da tag”
Enviar tag para repositório remoto: git push origin <tag>
Trabalhando com Branches
Criar um novo branch: git branch <nome-do-branch>
Trocar de branch: git checkout <nome-do-branch>
Criar e trocar para um novo branch: git checkout -b <nome-do-branch>
Mesclar branches: git merge <nome-do-branch>
Rebasing
git rebase <branch-destino>
Stash (Mudanças temporárias)
Criar um stash: git stash
Listar stashes: git stash list
Aplicar o stash: git stash apply
Reescrevendo o histórico
Alterar a mensagem do último commit: git commit –amend -m “nova mensagem”
Bisect (Encontrar commits com bugs)
Iniciar bisect: git bisect start
Marcar commit atual como ruim: git bisect bad
Marcar commit como bom: git bisect good
Pull Requests
Criar pull request: git push origin <branch>
Contribuições
Sinta-se à vontade para adicionar mais informações ou realizar correções.