Git
Não perca o que estava funcionando!
O que...?
VCS - Sistema de Controle de Versão
Open Source
Criado por Linus Torvalds para o kernel do
Linux
Workflow
master
branch-1
branch-2
commit branch-3
Repositórios
Remoto
Local
Mão na massa!
Mas já?!
Agora a teoria...
Linguagem vem depois do algoritmo
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
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”
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!)
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
Cheatsheet
$ git config
$ git init
$ git clone
$ git status
$ git status
Lista todos os arquivos novos ou modificados para serem commitados
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.
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).
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.
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.
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.
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.
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.
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.
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
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.
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.
Procure por...
Colaborando / Collaborating
GitHub
GitFlow (para produtos)
Links
https://git-scm.com
https://training.github.com
https://www.atlassian.com/git/tutorials/comparin
g-workflows/gitflow-workflow

Git - Não perca o que estava funcionando!

  • 1.
    Git Não perca oque estava funcionando!
  • 2.
    O que...? VCS -Sistema de Controle de Versão Open Source Criado por Linus Torvalds para o kernel do Linux
  • 3.
  • 4.
  • 5.
  • 6.
    Agora a teoria... Linguagemvem depois do algoritmo
  • 7.
    1º Passo Verificar seo 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.
  • 23.
    Procure por... Colaborando /Collaborating GitHub GitFlow (para produtos)
  • 24.