Este é um repositório teste para aprender como o git e o github funcionam
- Comandos básicos
- Indicadores
- Logs
- Diff
- Desfazendo Coisas
- Repositório Remoto
- Fork
- Branchs
- Merge
- Rebase
- Stash
- Alias
- Tags
Para visualisar todos os tipos de formatação no markdown, acesse esse link
Iniciar um repositório
git init
Adicionar um arquivo
git add <nome do arquivo>
git add .
Visualisar os status dos arquivos
git status
Dar um commit
git commit -m "Para apenas dar um commit"
git commit -am "Para adicionar todos os arquivos e dar commit"
Verde - Linha adicionada
Azul - Linha modificada
Seta vermelha - Linha apagada
U - Untracked (não foi adicionado ainda)
A - Added (adicionado mas não commitado)
M - Modified (commitado e modificado)
Para dar um log mostrando cada commit, o autor, a data e a mensagem, basta usar
git log
Para mostrar detalhes mais avançados, como branchs e merges, usa-se
git log --decorate
Para filtrar pelo autor, utilizar
git log --author="Matheus"
Para um log mais básico, mostrando apenas os autores (em ordem alfabética) e seus commits (apenas as mensagens), usa-se
git shortlog
Para mostrar os autores e o número de commits de cada um, utiliza-se
git shortlog -sn
Para visualisar de forma gráfica os branchs e versões, basta usar
git log --graph
Para visualisar detalhes de uma commit, usar
git show <hash do commit>
O diff mostra as diferenças entre os arquivos do último commit e os unstageds
git diff
Para listar somente os nomes dos arquivos modificados, usar
git diff --name-only
Para desfazer as modificações de um arquivo unstaged, voltando ele para o estado do último commit, usa-se
git checkout <nome do arquivo>
Para dar unstaged num arquivo staged, basta usar
git reset HEAD <nome do arquivo>
Para apenas desfazer o commit e deixar os arquivos intactos e em staged, pronto para fazer o commit novamente, usar
git reset --soft <hash do commit anterior>
Para desfazer o commit e voltar os arquivos para unstaged, usa-se
git reset --mixed <hash do commit anterior>
Para desfazer o commit e todas as alterações dos arquivos, utilizar
git reset --hard <hash do commit anterior>
O revert serve para criar um novo commit revertendo as mudanças de um commit anterior
Por exemplo, digamos que acabamos de dar um commit e ele está sendo responsável por erros em produção, para voltarmos ao código anterior, sem apagar esse commit, usamos
git reset <hash do commit a ser revertido>
Assim, ele cria um novo commit sem as alterções desse selecionado
Para linkar com um repositório do GitHub, basta usar os seguintes comandos
git remote add origin <endereço do repositório>
git push -u origin master
A partir daí é só usar
git push
Para baixar a última versão do repositório, utilizar
git pull
Para verificar os repositórios remotos conectados, usa-se
git remote
Para clonar um repositório para a máquina, usar
git clone <endereço do repositório> <diretório alvo>
Para apagar uma branch num repositório remoto, usa-se
git push origin :<nome da branch>
A mesma coisa para tags
git push origin :<nome da tag>
O fork serve para trabalhar em um repositório de outra pessoa ou organização e depois enviar um pull request
Para isso deve-se acessar o repositório e clicar no botão fork
Para criar um branch, utiliza-se
git checkout -b <nome do branch>
Para verificar os branchs existentes, usar
git branch
Para navegar entre os branchs, utilizar
git checkout <nome do branch>
Para apagar um branch, usa-se
git branch -D <nome do branch>
O merge une duas branchs diferentes criando um novo commit e mantendo as anteriores
git merge <branch a ser mesclado>
Pros | Contras |
---|---|
Não destroi commits | Cria um commit extra |
. | Deixa o histórico poluído |
Move os commits para o branch de destino
git rebase <branch a ser mesclado>
Pros | Contras |
---|---|
Evita commits extras | Perde a ordem cronológica |
Histórico linear |
O git stash serve para armazenar mudanças em progresso sem ter que dar commit
git stash
Para aplicar as mudanças armazenadas, usa-se
git stash aply
Para listar as mudanças, utilizar
git stash list
Para limpar todos os stashs armazenados, usar
git stash clear
Para criar um alias de comando, usa-se
git config --global alias.<alias> <comando>
Assim, ao invés de usar git <comando>
, usa-se git <alias>
A tag pode ser usado para criar uma versão, por exemplo
git tag -a <tag> -m "<mensagem>"
Para listar as tags, utilizar
git tag --list
Para apagar a tag, usa-se
git tag -d <tag>
Para enviar uma tag para um servidor remoto, usar
git push --tags