Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git Básico em 60 minutos

Git Básico em 60 minutos

Treinamento realizado para iniciantes de VCS e GIT em 07/04/2014

Matheus Andrade

April 07, 2014
Tweet

More Decks by Matheus Andrade

Other Decks in Programming

Transcript

  1. Configurando • git config --global user.name “matheuslao” • git config

    --global user.email [email protected] • git config --list (ou dá um cat nos arquivos)
  2. Workflow simples • Criar um arquivo ◦ touch matheus.txt •

    Adicionar o arquivo no index ◦ git add matheus.txt ◦ git rm --cached matheus.txt
  3. Workflow simples • Criar um arquivo ◦ touch matheus.txt •

    Adicionar o arquivo no index ◦ git add matheus.txt git rm --cached matheus.txt • Realizar o commit ◦ git commit -m “adicionando arquivo matheus.txt”
  4. Workflow simples • Editar um arquivo já trackeado: ◦ echo

    “Olá Matheus” >> matheus.txt ◦ checkout
  5. Workflow simples • Editar um arquivo já trackeado: ◦ echo

    “Olá Matheus” >> matheus.txt checkout • Adicionar um outro arquivo ◦ echo “Olá GERE” > gere.txt
  6. Workflow simples • Editar um arquivo já trackeado: ◦ echo

    “Olá Matheus” >> matheus.txt checkout • Adicionar um outro arquivo ◦ echo “Olá GERE” > gere.txt • Commitar mudanças com: ◦ git commit -am “adicionando mais alteracoes”
  7. Workflow simples • Cuidado com o git commit -am •

    git add <file> • git add . • git add -i • git commit -am (-a -m) “mensagem” • commitar o gere.txt
  8. Visualizando Histórico • git log • git log -n 2

    • git log -p • git log -n 1 -p matheus.txt • git log --pretty=oneline • ….
  9. Visualizando Histórico • Interfaces Gráficas ◦ gitk ◦ git-cola ◦

    qGit ◦ e-Git (Eclipse Plugin) ◦ smartGit, gitEye ◦ …. ◦ Lista grande de tools em: http://git.wiki.kernel.org/index. php/InterfacesFrontendsAndTools
  10. Ignorando Novos Arquivos • por projeto: .gitignore • por repositório:

    .git/info/exclude • por user/computer: .gitconfig [core] excludesfile = ~/.gitignore
  11. Ignorando Arquivos já versionados • Você não quer mais que

    o GIT versione o arquivo? • Você quer versionar a exclusão do arquivo?
  12. Ignorando Arquivos já versionados • Você não quer mais que

    o GIT versione o arquivo? • Você quer versionar a exclusão do arquivo? • Ou você quer eliminar o arquivo da face da Terra? (remover sua existência!!)
  13. Ignorando Arquivos já versionados • Você não quer mais que

    o GIT versione o arquivo: ◦ você assume as modificações; ◦ o git não monitorará mais os arquivos versionados. • git update-index --assume-unchanged <file> • git ls-files -v | grep ‘h’
  14. Ignorando Arquivos já versionados • Você quer versionar a exclusão

    do arquivo? ◦ você quer remover um arquivo versionado; ◦ manter o registro da exclusão no histórico
  15. Ignorando Arquivos já versionados • Você quer versionar a exclusão

    do arquivo? ◦ você quer remover um arquivo versionado; ◦ manter o registro da exclusão no histórico • git rm matheus.txt • git commit -m “deletando matheus.txt”
  16. Ignorando Arquivos já versionados • Ou você quer eliminar o

    arquivo da face da Terra? (remover sua existência!!) ◦ você quer apagar o rastro que o arquivo existiu no repositório!! files="target bin javadoc arquivo1.war" git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch $files" HEAD rm -rf .git/refs/original/ && git reflog expire --all && git gc --aggressive --prune
  17. Renomeando... • Git mv <origin> <destination> • Faz os 3

    passos abaixo: ◦ mv <origin> <destination> ◦ git rm <origin> ◦ git add <destination>
  18. Checkout • git checkout -- <file> • git diff <file>

    • git checkout HEAD <file> • git diff --cached <file>
  19. Reset • Desfazer todas as modificações que estava fazendo: ◦

    git reset --hard • Limpar todos os novos arquivos: ◦ git clean -d -f
  20. Sim….. mas….. • Beleza, tudo isso são opções antes de

    eu commitar…… • E se eu realizar um commit e quiser desfazer???
  21. reset --soft • git reset --soft HEAD~1 • desfaz o

    commit anterior (~1), mas não perde o conteúdo.
  22. Configurando Repositório Remoto • Se você criou o repositório remoto,

    basta adicionar ao seu projeto: ◦ git remote add <name> <url-do-remoto> • Senão, você CLONA um repositório remoto: ◦ git clone <protocolo><url-do-remoto> <folder-name>
  23. Criando Branches • git branch <name> • git checkout <name>

    • git checkout -b <name> • git checkout --track <remote/branch>
  24. Branches Remotos • criando: ◦ git push <remoto> <name> •

    apagando: ◦ git push <remoto> :<name>
  25. Rebasing • git rebase <branch> • git rebase -i <branch>

    Conflitos: • git add <file> && git rebase --continue • git rebase --skip • git rebase --abort
  26. Curiosidades • git stash • git blame • git reflog

    • git bisect • Aliases • Hooks