Vitor Melo
Posted on October 13, 2024
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.
💖 💪 🙅 🚩
Vitor Melo
Posted on October 13, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.