Use git e perca seu medo de errar

A138df21b8dd1d76cb005d6c46b15785?s=47 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.

A138df21b8dd1d76cb005d6c46b15785?s=128

Bruno

December 06, 2014
Tweet

Transcript

  1. 2.

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

    Técnico Judiciário do TJ-BA. Delegado Sindical. Consultor Web Freelancer. Programador.
  2. 6.
  3. 7.
  4. 10.

    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).
  5. 12.

    Vantagens de usar um SCV: Eficiência Economia de espaço; Padroniza

    as informações a respeito de cada versão;
  6. 13.

    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.
  7. 15.

    Vantagens de usar um SCV: Segurança Permite recuperar versões anteriores;

    Poder recuperar arquivos apagados por acidente;
  8. 16.

    Vantagens de usar um SCV: Segurança Permite recuperar versões anteriores;

    Poder recuperar arquivos apagados por acidente; Funciona como Backup;
  9. 18.

    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.
  10. 20.
  11. 23.

    Vocabulário Repositório Espécie de Banco de Dados onde o SCV

    armazena as versões e os metadados destas versões.
  12. 24.
  13. 25.
  14. 31.
  15. 36.
  16. 38.

    ~$ git config --global user.name “Fulano de Tal”! ! ~$

    git config --global user.email fulano@exemplo.com
  17. 40.

    ~$ git config --list! ! user.name=Fulano de Tal! user.email=fulano@exemplo.com! 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! ! ~$
  18. 44.

    ~$ cd Desktop #muda de diretorio! ! ~/Desktop $ mkdir

    wordcamp_ssa #cria diretorio! ! ~/Desktop $
  19. 45.
  20. 46.

    ~$ cd Desktop #muda de diretorio! ! ~/Desktop $ mkdir

    wordcamp_ssa #cria diretorio! ! ~/Desktop $ cd wordcamp_ssa! ! ~/Desktop/wordcamp_ssa $
  21. 47.

    ~$ 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 $
  22. 48.
  23. 49.
  24. 50.
  25. 53.

    ~/Desktop/wordcamp_ssa $ git init! Initialized empty Git repository in /Users/

    brunocalheira/Desktop/wordcamp_ssa/.git/ ! ! ~/Desktop/wordcamp_ssa $
  26. 55.
  27. 57.

    ~/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 $
  28. 61.

    ~/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)
  29. 66.

    ~/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 $
  30. 69.

    ~/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 $
  31. 72.

    ~/Desktop/wordcamp_ssa $ git log! commit 6b03bef21f7413754141b1b365857d1aa2313801! Author: Bruno Calheira <bruno@calheira.com>!

    Date: Tue Dec 2 19:10:50 2014 -0300! ! Versão Inicial! ! ~/Desktop/wordcamp_ssa $
  32. 73.

    Vocabulário Hash SHA-1 Idenficador Único de cada Commit. Composto de

    40 caracteres gerados a partir de uma função de checksum.
  33. 75.
  34. 76.
  35. 77.
  36. 79.

    ~/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 $
  37. 83.

    ~/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 $
  38. 85.

    ~/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 $
  39. 87.

    ~/Desktop/wordcamp_ssa $ git log --oneline ! 4d1ca5d Adiciona Folha de

    Estilos! 6b03bef Versão Inicial! ! ~/Desktop/wordcamp_ssa $
  40. 99.

    ~/Desktop/wordcamp_ssa $ git checkout figura! Switched to branch 'figura'! !

    ~/Desktop/wordcamp_ssa $ git branch! * figura! master! ! ~/Desktop/wordcamp_ssa $
  41. 100.
  42. 101.
  43. 102.
  44. 103.

    ~/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 $
  45. 105.
  46. 106.
  47. 107.

    ~/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! ! !
  48. 108.

    ~/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'! ! ! ! !
  49. 109.

    ~/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! ! !
  50. 113.
  51. 114.

    ~/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 $
  52. 115.

    ~/Desktop/wordcamp_ssa $ git log --oneline ! e5b676e Adiciona Figura Original!

    4d1ca5d Adiciona Folha de Estilos! 6b03bef Versão Inicial! ! ~/Desktop/wordcamp_ssa $
  53. 116.
  54. 118.

    ~/Desktop/wordcamp_ssa $ git checkout -b restauracao! Switched to a new

    branch ‘restauracao'! ! ~/Desktop/wordcamp_ssa $
  55. 119.

    ~/Desktop/wordcamp_ssa $ git checkout -b restauracao! Switched to a new

    branch ‘restauracao'! ! ~/Desktop/wordcamp_ssa $ git branch! figura! master! * restauracao! ! ~/Desktop/wordcamp_ssa $
  56. 120.
  57. 121.
  58. 122.

    ~/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 $
  59. 124.

    ~/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%)!
  60. 125.

    ~/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(+)!
  61. 129.
  62. 130.

    ~/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 $! ! !
  63. 131.

    ~/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 $!
  64. 134.
  65. 135.
  66. 138.

    ~/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 $!
  67. 140.
  68. 141.
  69. 142.
  70. 143.
  71. 151.
  72. 152.

    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
  73. 153.