- Instalção: https://git-scm.com/downloads
- Documentação: https://git-scm.com/docs
Antes de começar a usar o Git é importante que você tenha ele configurado corretamente em sua máquina:
git config --global user.name "Fulano de Tal"
: Nome, coloque o mesmo nome do github;git config --global user.email fulanodetal@exemplo.br
: Email, coloque o mesmo email do github;git config --global core.editor vim
: Editor, aqui você pode escolher o editor padrão do git;git config --list
: Use para ver o resultado das suas confirugarções.
-
git init
: Cria um repositório git vazio. -
git status
: Informa o estado das alterações do nosso projeto. -
git add [arquivo]
: Adiciona novos arquivos ou atualiza mudanças para irem para o nosso repositório.git add .
: Você pode adicionar todos os arquivo usando o "." (ponto).
-
git commit -m "message"
: Registra alterações no repositório.git commit --amend -m "New message"
: Troca a mensagem feita no último commit.
-
git log
: Mostra os pontos na "linha do tempo" do repositório (commits).git log --oneline
: Mostra os pontos da "linha do tempo" de forma resumida.git log --abbrev-commit
: Mostra o hash dos commits com 7 caracteres.git log --graph
: Desenha uma representação gráfica dos commits no lado esquerdo da saída do terminal.git log --grep="palavra"
: Busca por commits que tenha uma palavra ou parte de uma especificada.
-
git diff
: Mostra o que foi alterado em um arquivo, de vermelho o que foi excluído, de verde o que foi adicionando. Use-o antes do git add. -
git show
: Apresenta o último ponto na "história" do nosso projeto.git show [hash]
: Apresenta determinado ponto na "história" do nosso projeto.
-
git remote
: Verifica se existe um repositório remoto. -
git push
: Envia alterações locais para o repositório remoto. -
git clone [link-do-repositório]
: Clona um repositório (Github por exemplo). -
git pull
: Puxa as alterações feitas no repositório remoto (Github por exemplo). -
git reset [arquivo]
: Remove um arquivo adicionado com o git add, use antes do git commit.git reset --hard [hash]
: Reverte um commit. Vai para um determinado ponto da "história" do projeto.
-
git branch
: Lista ramificações do nosso repositório.git branch -d [ramificação]
: Exclui uma ramificação do nosso repositório.
-
git checkout [hash]
: Restaura arquivos da árvore de trabalho.git checkout -b [minha-ramificação]
: Cria uma nova ramificação no nosso projeto.git checkout [minha-ramificação]
: Vai para a ramificação criada pelo desenvolvedor.
-
git merge [branch]
: Faz a fusão de uma branch X com uma branch Y. -
git mv [arquivo] [diretório]
: Move um arquivo para um diretório especificado. -
git mv [nome-original] [novo-nome]
: Renomea um arquivo. -
git rm -f [file]
: Exclúi um arquivo do nosso repositório forçadamente. -
git clean -f
: Remove arquivos não rastreados forçadamente.
Cada mensagem tem um formato pré-definido, que inclui um tipo e um título:
git commit -m "[tipo]: [menssagem]"
Evite escrever mensagens do commit com mais de 100 caracteres, assim fica mais fácil para ler no GitHub, Gitlab e outras ferramentas.
Tipos:
build
: Alterações que afetam o sistema de build ou dependências externas.static
: Alterações no conteúdo de arquivos estáticos (dados .json, imagens, etc).ci
: Alterações em nossos arquivos e scripts de configuração de CI.cd
: Alterações em nossos arquivos e scripts de configuração para CD.docs
: Somente alterações na documentação.feat
: Um novo recurso.fix
: Uma correção de bug da aplicação.perf
: Uma alteração de código que melhora o desempenho.refactor
: Uma alteração de código que não corrige um bug nem adiciona um recurso.improve
: Alguma alteração de código que melhore o comportamento de um recurso.style
: Alterações que não afetam o significado do código (espaço em branco, formatação, ponto e vírgula, etc).test
: Adicionando testes ausentes ou corrigindo testes existentes.revert
: Reverter para um commit anterior.chore
- Atualizações de tarefas de build, configurações de administrador, pacotes etc.
Título:
O título contém uma descrição sucinta da mudança:
Use o imperativo, tempo presente: "mudança" não "mudou" nem "muda". Não capitalize a primeira letra. Sem ponto (.) no final. Adicione um tipo consistente com o título do conteúdo.
git commit -m "docs: Atualizaçao do README
git commit -m "fix: Loop infinito na linha 50
git commit -m "feat: Pagina de login
git commit -m "ci: Modificaçao no Dockerfile"
Você pode criar alias para os comandos do git, basta ir no arquivo ".gitconfig" e definir seus alias. No Linux o arquivo ".gitconfig" fica localizado em: /home/seuusuário/.gitconfig
[alias]
cl = clone
it = init
ad = add
bn = branch
ci = commit -m
co = checkout
cm = checkout master
cb = checkout -b
st = status -sb
sf = show --name-only
pom = push origin master -u
ps = push
lg = log --pretty=format:'%Cred%h%Creset %C(bold)%cr%Creset %Cgreen<%an>%Creset %s' --max-count=30
incoming = !(git fetch --quiet && git log --pretty=format:'%C(yellow)%h %C(white)- %C(red)%an %C(white)- %C(cyan)%d%Creset %s %C(white)- %ar%Creset' ..@{u})
outgoing = !(git fetch --quiet && git log --pretty=format:'%C(yellow)%h %C(white)- %C(red)%an %C(white)- %C(cyan)%d%Creset %s %C(white)- %ar%Creset' @{u}..)
unstage = reset HEAD --
undo = checkout --
rollback = reset --soft HEAD~1