O documento fornece um guia introdutório sobre o sistema de controle de versão Git, explicando seus principais conceitos e comandos em menos de 3 frases cada: (1) Git é um sistema de controle de versão criado por Linus Torvalds para o kernel Linux; (2) O documento explica conceitos como branches, commits e repositórios locais e remotos; (3) Ele também resume os principais comandos Git como add, commit, pull e push.
7. 1º Passo
Verificar se o git está instalado!
Peça a ele para mostrar a versão atual:
$ git --version
git version 1.8.2
8. Cheatsheet
$ git config
$ git config
Primeiro de tudo, vamos configurar !
$ git config --global user.name “meu-nome”
Configura o nome que estará nos seus commits
$ git config --global user.email “meu@email.com”
Configura o email que estará nos seus commits
$ git config --global color.ui auto
Habilita colorização da saída da linha de comando (para te ajudar!)
Nota: você pode
ter configurações
específicas para
um repositório,
usando “--local”
9. Cheatsheet
$ git config
$ git init
$ git init
Cria um diretório .git no seu repositório
$ git init
Inicializa o git na pasta atual
$ git init meu-repositório
Inicializa o git numa nova pasta “meu-repositório”, armazenada na sua pasta atual
$ git init endereço/do/meu-repositório
Inicializa o git no endereço fornecido (pode ser uma pasta existente ou nova)
Nota: para “desfazer”
a inicialização de um
repositório, apenas
apague o diretório
“.git” (ele vai estar
oculto!)
10. Cheatsheet
$ git config
$ git init
$ git clone
$ git clone
Baixa um projeto e seu histórico de versão
$ git clone repositório-remoto
Clona um repositório remoto para uma nova pasta, de mesmo nome, dentro da
sua pasta atual.
$ git clone repositório-remoto meu-repositório
Clona um repositório remoto para a pasta “meu repositório” - só funciona se a
pasta destino estiver vazia.
Ou seja - não precisamos inicializar antes de clonar um repositório!
Nota: quando
você clona um
repositório, o link
do remoto se
torna seu link de
origem
11. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git status
Lista todos os arquivos novos ou modificados para serem commitados
12. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git add
$ git add
Adiciona o estado atual dos arquivos na staging area
$ git add nome-do-arquivo.extensão
$ git add caminho/do/arquivo.extensão
Adiciona o arquivo referenciado na staging area.
$ git add -A
Adiciona todos os arquivos na staging area.
$ git add *.extensão
Adiciona todos os arquivos com a referenciada extensão na staging area.
13. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git add
$ git commit
$ git commit
Realiza um commit
$ git commit
Realiza um commit no branch atual, com os arquivos que estão na staging area.
$ git commit -a
Realiza um commit no branch atual com todos os arquivos sendo seguidos.
$ git commit -m “Sua mensagem de commit”
Realiza um commit no branch atual, já adicionando a mensagem do commit.
$ git commit --ammend
Junta o último commit feito e o atual (requer uma nova mensagem de commit).
14. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git add
$ git commit
$ git reset
$ git reset
Desfaz modificações de commit
$ git reset
Limpa a staging area;
$ git reset nome-do-arquivo.extensão
Remove o arquivo referenciado da staging area.
$ git reset --soft HEAD^
Remove o último commit feito. Deixa as modificações dele no index.
$ git reset --hard HEAD^
Remove o último commit feito. Apaga todas as modificações daquele commit.
15. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git add
$ git commit
$ git reset
$ git stash
$ git stash
Guarda suas modificações atuais em outro lugar e volta para o estado do último
commit
$ git stash
Cria um novo stash, salvando ele no início da pilha.
$ git stash show stash@{0}
Mostra as diferenças entre as modificações salvas no stash e o estado atual.
$ git stash list
Lista todos os stashes criados.
$ git stash pop
Aplica o stash ao estado atual e o retira da lista de stashes.
16. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git add
$ git commit
$ git reset
$ git stash
$ git log
$ git log
Mostra o histórico
“--graph”
adiciona
linha
ilustrativa
de workflow!
Nota: para sair do
log, digite “q” e
aperte ENTER.
17. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git add
$ git commit
$ git reset
$ git stash
$ git log
$ git checkout
$ git checkout
Altera o estado dos arquivos no repositório
$ git checkout nome-do-branch
Altera o estado dos arquivos para o estado do último commit do branch referenciado.
$ git checkout -b|-B nome-do-branch
Cria um novo branch, a partir do commit atual no branch atual, e entra no novo
branch.
18. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git add
$ git commit
$ git reset
$ git stash
$ git log
$ git checkout
$ git branch
$ git branch
Possui vários comandos de branch
$ git branch
Lista todos os branches do repositório.
$ git branch nome-do-branch
Cria um novo branch, a partir do commit atual no branch atual.
$ git branch -d nome-do-branch
Deleta o branch referenciado - apenas se suas informações já estiverem em outro
local.
$ git branch -D nome-do-branch
Deleta o branch referenciado.
19. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git add
$ git commit
$ git reset
$ git stash
$ git log
$ git checkout
$ git branch
$ git merge
$ git merge
Incorpora as mudanças.
$ git merge nome-do-branch
Incorpora as mudanças feitas em um branch no branch atual.
20. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git add
$ git commit
$ git reset
$ git stash
$ git log
$ git checkout
$ git branch
$ git merge
$ git pull
$ git pull
Baixa e incorpora as mudanças feitas no remoto
$ git pull
Baixa e incorpora mudanças de um repositório remoto já configurado.
$ git pull repositório-remoto
Baixa e incorpora mudanças do repositório remoto referenciado.
Lembre: quando clonamos um repositório, ele já configura aquele endereço como
a origem. Então podemos só pedir “git pull” e funcionará! =D
Não funcionou? Edite ou adicione um endereço como “origin”.
Confira se já existe, usando git remote
Se existe: git remote set-url origin endereco-remoto
Se não existe: git remote add origin endereco-remoto
21. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git add
$ git commit
$ git reset
$ git stash
$ git log
$ git checkout
$ git branch
$ git merge
$ git pull
$ git push
$ git push
Envia os commits locais para o repositório remoto
$ git push
Envia os commits locais para um repositório remoto já configurado.
$ git push repositório-remoto
Envia os commits locais para o repositório remoto referenciado.
22. Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git add
$ git commit
$ git reset
$ git stash
$ git log
$ git checkout
$ git branch
$ git merge
$ git pull
$ git push
$ git fetch
$ git fetch
Baixa as mudanças feitas no remoto
$ git fetch
Baixa mudanças de um repositório remoto já configurado.
$ git fetch repositório-remoto
Baixa mudanças do repositório remoto referenciado.
- Mas ué! Não é isso que o pull faz?!
- Não. Não é.
O pull baixa e incorpora as mudanças.
O fetch apenas baixa.