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

Use git e perca seu medo de errar

Bruno
December 06, 2014

Use git e perca seu medo de errar

O caminho para o sucesso é inevitavelmente repleto de erros e falhas. Mesmo assim, alguns tem medo de tentar coisas novas e acabar provocando desastres colossais irreparáveis.
Esta palestra será sobre o Git – um sistema de controle de versões distribuído que, dentre outras coisas, nos permite salvar o estado atual de arquivos e diretórios. Ele também permite retornar as coisas aos seus estados anteriores, caso seja necessário. O Git é um grande aliado da criatividade. Temos a liberdade de testar novas ideias, com a segurança de poder voltar atrás se algo der errado. Também falaremos da importância dos SCV’s e veremos alguns comandos básicos para utilizar o programa na prática.
Palestra apresentada no WordCamp Salvador 2014.

Bruno

December 06, 2014
Tweet

Other Decks in Technology

Transcript

  1. Quem é Bruno Calheira? Matemático. Especialista em Engenharia de Software.

    Técnico Judiciário do TJ-BA. Delegado Sindical. Consultor Web Freelancer. Programador.
  2. Sistemas de Controle de Versõe s ar maze nam a

    s alterações em um arquivo o u u m c o n j u n t o d e ar q u i v o s a o lo ng o d o tempo, per mitindo que, p o s t e r i o r m e n t e , v o c ê retorne este(s) arquivo(s) a o (s) s e u (s) e s t ad o (s) anterior(es).
  3. Vantagens de usar um SCV: Eficiência Economia de espaço; Padroniza

    as informações a respeito de cada versão;
  4. Vantagens de usar um SCV: Eficiência Economia de espaço; Padroniza

    as informações a respeito de cada versão; Destaca as diferenças entre cada versão salva.
  5. Vantagens de usar um SCV: Segurança Permite recuperar versões anteriores;

    Poder recuperar arquivos apagados por acidente;
  6. Vantagens de usar um SCV: Segurança Permite recuperar versões anteriores;

    Poder recuperar arquivos apagados por acidente; Funciona como Backup;
  7. Vantagens de usar um SCV: Colaboração Múltiplos usuários podem trabalhar

    em um mesmo arquivo simultaneamente; Saber: quem alterou o quê, quando e como.
  8. Vocabulário Repositório Espécie de Banco de Dados onde o SCV

    armazena as versões e os metadados destas versões.
  9. ~$ git config --list! ! user.name=Fulano de Tal! [email protected]! core.editor=nano

    -wl1! color.ui=true! core.repositoryformatversion=0! core.filemode=true! core.bare=false! core.logallrefupdates=true! core.ignorecase=true! core.precomposeunicode=true! ! ~$
  10. ~$ cd Desktop #muda de diretorio! ! ~/Desktop $ mkdir

    wordcamp_ssa #cria diretorio! ! ~/Desktop $
  11. ~$ cd Desktop #muda de diretorio! ! ~/Desktop $ mkdir

    wordcamp_ssa #cria diretorio! ! ~/Desktop $ cd wordcamp_ssa! ! ~/Desktop/wordcamp_ssa $
  12. ~$ cd Desktop #muda de diretorio! ! ~/Desktop $ mkdir

    wordcamp_ssa #cria diretorio! ! ~/Desktop $ cd wordcamp_ssa! ! ~/Desktop/wordcamp_ssa $ touch index.html #cria arquivo! ! ~/Desktop/wordcamp_ssa $
  13. ~/Desktop/wordcamp_ssa $ git init! Initialized empty Git repository in /Users/

    brunocalheira/Desktop/wordcamp_ssa/.git/ ! ! ~/Desktop/wordcamp_ssa $
  14. ~/Desktop/wordcamp_ssa $ ls -la #exibe ocultos! total 8! drwxr-xr-x 4

    brunocalheira staff 136 2 Dez 19:06 .! drwx------+ 4 brunocalheira staff 136 2 Dez 18:46 ..! drwxr-xr-x 10 brunocalheira staff 340 2 Dez 19:06 .git! -rw-r--r-- 1 brunocalheira staff 295 2 Dez 18:53 index.html! ! ~/Desktop/wordcamp_ssa $
  15. ~/Desktop/wordcamp_ssa $ git status! On branch master! ! Initial commit!

    ! Untracked files:! (use "git add <file>..." to include in what will be committed)! ! ! index.html! ! nothing added to commit but untracked files present (use "git add" to track)
  16. ~/Desktop/wordcamp_ssa $ git add index.html! ! ~/Desktop/wordcamp_ssa $ git status!

    On branch master! ! Initial commit! ! Changes to be committed:! (use "git rm --cached <file>..." to unstage)! ! ! new file: index.html! ! ! ~/Desktop/wordcamp_ssa $
  17. ~/Desktop/wordcamp_ssa $ git commit -m "Versão Inicial"! [master (root-commit) 6b03bef]

    Versão Inicial! 1 file changed, 12 insertions(+)! create mode 100644 index.html! ! ~/Desktop/wordcamp_ssa $
  18. ~/Desktop/wordcamp_ssa $ git log! commit 6b03bef21f7413754141b1b365857d1aa2313801! Author: Bruno Calheira <[email protected]>!

    Date: Tue Dec 2 19:10:50 2014 -0300! ! Versão Inicial! ! ~/Desktop/wordcamp_ssa $
  19. Vocabulário Hash SHA-1 Idenficador Único de cada Commit. Composto de

    40 caracteres gerados a partir de uma função de checksum.
  20. ~/Desktop/wordcamp_ssa $ git status! On branch master! Changes not staged

    for commit:! (use "git add <file>..." to update what will be committed)! (use "git checkout -- <file>..." to discard changes in working directory)! ! ! modified: index.html! ! Untracked files:! (use "git add <file>..." to include in what will be committed)! ! ! estilo.css! ! no changes added to commit (use "git add" and/or "git commit -a")! ! ~/Desktop/wordcamp_ssa $
  21. ~/Desktop/wordcamp_ssa $ git add .! ! ~/Desktop/wordcamp_ssa $ git status!

    On branch master! Changes to be committed:! (use "git reset HEAD <file>..." to unstage)! ! ! new file: estilo.css! ! modified: index.html! ! ~/Desktop/wordcamp_ssa $
  22. ~/Desktop/wordcamp_ssa $ git commit -m "Adiciona Folha de Estilos"! [master

    4d1ca5d] Adiciona Folha de Estilos! 2 files changed, 7 insertions(+), 1 deletion(-)! create mode 100644 estilo.css! ! ~/Desktop/wordcamp_ssa $
  23. ~/Desktop/wordcamp_ssa $ git log --oneline ! 4d1ca5d Adiciona Folha de

    Estilos! 6b03bef Versão Inicial! ! ~/Desktop/wordcamp_ssa $
  24. ~/Desktop/wordcamp_ssa $ git checkout figura! Switched to branch 'figura'! !

    ~/Desktop/wordcamp_ssa $ git branch! * figura! master! ! ~/Desktop/wordcamp_ssa $
  25. ~/Desktop/wordcamp_ssa $ git add .! ! ~/Desktop/wordcamp_ssa $ git commit

    -m “Adiciona Figura Original”! [figura e5b676e] Adiciona Figura Original! 2 files changed, 1 insertion(+)! create mode 100644 ecce_hommo.jpg! ! ~/Desktop/wordcamp_ssa $
  26. ~/Desktop/wordcamp_ssa $ git checkout master! Switched to branch 'master'! !

    ~/Desktop/wordcamp_ssa $ git log --oneline ! 4d1ca5d Adiciona Folha de Estilos! 6b03bef Versão Inicial! ! !
  27. ~/Desktop/wordcamp_ssa $ git checkout master! Switched to branch 'master'! !

    ~/Desktop/wordcamp_ssa $ git log --oneline ! 4d1ca5d Adiciona Folha de Estilos! 6b03bef Versão Inicial! ! ~/Desktop/wordcamp_ssa $ git checkout figura! Switched to branch 'figura'! ! ! ! !
  28. ~/Desktop/wordcamp_ssa $ git checkout master! Switched to branch 'master'! !

    ~/Desktop/wordcamp_ssa $ git log --oneline ! 4d1ca5d Adiciona Folha de Estilos! 6b03bef Versão Inicial! ! ~/Desktop/wordcamp_ssa $ git checkout figura! Switched to branch 'figura'! ! ~/Desktop/wordcamp_ssa $ git log --oneline ! e5b676e Adiciona Figura Original! 4d1ca5d Adiciona Folha de Estilos! 6b03bef Versão Inicial! ! !
  29. ~/Desktop/wordcamp_ssa $ git checkout master! Switched to branch 'master'! !

    ~/Desktop/wordcamp_ssa $ git merge figura ! Updating 4d1ca5d..e5b676e! Fast-forward! ecce_hommo.jpg | Bin 0 -> 22138 bytes! index.html | 1 +! 2 files changed, 1 insertion(+)! create mode 100644 ecce_hommo.jpg! ! ~/Desktop/wordcamp_ssa $
  30. ~/Desktop/wordcamp_ssa $ git log --oneline ! e5b676e Adiciona Figura Original!

    4d1ca5d Adiciona Folha de Estilos! 6b03bef Versão Inicial! ! ~/Desktop/wordcamp_ssa $
  31. ~/Desktop/wordcamp_ssa $ git checkout -b restauracao! Switched to a new

    branch ‘restauracao'! ! ~/Desktop/wordcamp_ssa $
  32. ~/Desktop/wordcamp_ssa $ git checkout -b restauracao! Switched to a new

    branch ‘restauracao'! ! ~/Desktop/wordcamp_ssa $ git branch! figura! master! * restauracao! ! ~/Desktop/wordcamp_ssa $
  33. ~/Desktop/wordcamp_ssa $ git status! On branch restauracao! Changes not staged

    for commit:! (use "git add <file>..." to update what will be committed)! (use "git checkout -- <file>..." to discard changes in working directory)! ! ! modified: ecce_hommo.jpg! ! no changes added to commit (use "git add" and/or "git commit -a")! ! ~/Desktop/wordcamp_ssa $
  34. ~/Desktop/wordcamp_ssa $ git commit -am "Atualiza a imagem"! [restauracao 0f4ed4c]

    Atualiza a imagem! 1 file changed, 0 insertions(+), 0 deletions(-)! rewrite ecce_hommo.jpg (98%)!
  35. ~/Desktop/wordcamp_ssa $ git log --oneline --stat! 0f4ed4c Atualiza a imagem!

    ecce_hommo.jpg | Bin 22138 -> 12670 bytes! 1 file changed, 0 insertions(+), 0 deletions(-)! e5b676e Adiciona Figura Original! ecce_hommo.jpg | Bin 0 -> 22138 bytes! index.html | 1 +! 2 files changed, 1 insertion(+)! 4d1ca5d Adiciona Folha de Estilos! estilo.css | 6 ++++++! index.html | 2 +-! 2 files changed, 7 insertions(+), 1 deletion(-)! 6b03bef Versão Inicial! index.html | 12 ++++++++++++! 1 file changed, 12 insertions(+)!
  36. ~/Desktop/wordcamp_ssa $ git checkout e5b676e ecce_hommo.jpg! ! ~/Desktop/wordcamp_ssa $ git

    status ! On branch restauracao! Changes to be committed:! (use "git reset HEAD <file>..." to unstage)! ! ! modified: ecce_hommo.jpg! ! ~/Desktop/wordcamp_ssa $! ! !
  37. ~/Desktop/wordcamp_ssa $ git commit -m "Retorna a Imagem Original"! [restauracao

    d6a59e3] Retorna a Imagem Original! 1 file changed, 0 insertions(+), 0 deletions(-)! rewrite ecce_hommo.jpg (97%)! ! ~/Desktop/wordcamp_ssa $!
  38. ~/Documentos $ git clone https://github.com/calheira/ wordcamp_ssa ! Cloning into 'wordcamp_ssa'...!

    remote: Counting objects: 18, done.! remote: Compressing objects: 100% (14/14), done.! remote: Total 18 (delta 5), reused 16 (delta 3)! Unpacking objects: 100% (18/18), done.! Checking connectivity... done.! ! ~/Documentos $!
  39. Onde aprender mais? http:/ /www-cs-students.stanford.edu/~blynn/ gitmagic/intl/pt_br/index.html http:/ /rogerdudler.github.io/git-guide/ index.pt_BR.html http:/

    /git-scm.com/book/pt-br/v1 http:/ /www.git-tower.com/learn/ebook/command- line/basics/what-is-version-control#start https:/ /try.github.io