Use o git e perca o medo de errar

799 visualizações

Publicada em

Palestra sobre o GIT.
Apresentada durante o WordCamp Belo Horizonte 2015.

Publicada em: Tecnologia
2 comentários
3 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
799
No SlideShare
0
A partir de incorporações
0
Número de incorporações
48
Ações
Compartilhamentos
0
Downloads
35
Comentários
2
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Use o git e perca o medo de errar

  1. 1. Bruno Calheira Use o Git e perca o Medo de Errar
  2. 2. Quem é Bruno Calheira? ● Baiano ● Matemático, Especialista em Engenharia de Software ● Técnico Judiciário do TJ-BA ● Delegado Sindical ● Consultor e Desenvolvedor Web Freelancer apaixonado por Softwares Livres
  3. 3. As FALHAS de hoje são os degraus para o SUCESSO de amanhã.
  4. 4. “O sucesso é 1% de inspiração e 99% de transpiração.” Thomas Edson
  5. 5. E se pudéssemos voltar atrás e corrigir os erros?
  6. 6. Sistemas de Controle de Versões SCV
  7. 7. Sistemas de Controle de Versões armazenam as alterações feitas em um conjunto de arquivos ao longo do tempo, permitindo que, posteriormente, você retorne estes arquivos aos seus estados anteriores.
  8. 8. Eficiência Vantagens de usar um SCV
  9. 9. Eficiência ● Economia de Espaço Vantagens de usar um SCV
  10. 10. Eficiência ● Economia de Espaço ● Padronização das Informações a respeito de cada versão Vantagens de usar um SCV
  11. 11. Eficiência ● Economia de Espaço ● Padronização das Informações a respeito de cada versão ● Destaca as diferenças de cada versão salva Vantagens de usar um SCV
  12. 12. Vantagens de usar um SCV Segurança
  13. 13. Vantagens de usar um SCV Segurança ● Funciona como Backup
  14. 14. Vantagens de usar um SCV Segurança ● Funciona como Backup ● Permite recuperar arquivos apagados por acidente
  15. 15. Vantagens de usar um SCV Segurança ● Funciona como Backup ● Permite recuperar arquivos apagados por acidente ● Permite recuperar versões anteriores de um arquivo
  16. 16. Vantagens de usar um SCV Colaboração
  17. 17. Vantagens de usar um SCV Colaboração ● Múltiplos usuários podem trabalhar em um mesmo arquivo simultaneamente
  18. 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
  19. 19. Principais SCV
  20. 20. Principais SCV
  21. 21. Principais SCV
  22. 22. Conhecendo o Git Open Source
  23. 23. Conhecendo o Git Distribuído Cada usuário possui um repositório completo.
  24. 24. Vocabulário Repositório Espécie de Banco de Dados onde o SCV armazena as versões e os metadados destas versões.
  25. 25. Nos SCV Centralizados existe uma única cópia do Repositório armazenada no Servidor
  26. 26. O Git é um SVC Distribuído. Cada usuário possui um repositório completo.
  27. 27. Conhecendo o Git Rápido Reduz a necessidade de conexão com o servidor.
  28. 28. Git - Trabalhando Off-line ● Ver o histórico ● Comparar diferenças ● Confirmar alterações ● ...
  29. 29. Conhecendo o Git Fácil Aprendizado Comunidade ativa e amigável.
  30. 30. Git na Prática Instalando o Git
  31. 31. git-scm.com
  32. 32. Quem tem medo do terminal?
  33. 33. git-scm.com/downloads/guis
  34. 34. Git na Prática Configurando o Git
  35. 35. Comando git config Configura o git
  36. 36. ~ >
  37. 37. ~ > git config --global user.name “Fulano de Tal” ~ >
  38. 38. ~ > git config --global user.name “Fulano de Tal” ~ > git config --global user.email fulano@gmail.com ~ >
  39. 39. ~ > git config --list
  40. 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 ~ >
  41. 41. Git na Prática Criando um Repositório
  42. 42. ~ > cd Sites #entra no diretório Sites ~/Sites >
  43. 43. ~ > cd Sites #entra no diretório Sites ~/Sites > mkdir acaraqueijo #cria diretorio
  44. 44. ~ > cd Sites #entra no diretório Sites ~/Sites > mkdir acaraqueijo #cria diretorio ~/Sites > cd acaraqueijo ~/Sites/acaraqueijo >
  45. 45. ~ > cd Sites #entra no diretório Sites ~/Sites > mkdir acaraqueijo #cria diretorio ~/Sites > cd acaraqueijo ~/Sites/acaraqueijo > touch index.html #cria arquivo
  46. 46. Comando git init Inicia um repositório
  47. 47. ~/Sites/acaraqueijo > git init
  48. 48. ~/Sites/acaraqueijo > git init Initialized empty Git repository in /Users/brunocalheira/Sites/acaraqueijo/.git/ ~/Sites/acaraqueijo >
  49. 49. ~/Sites/acaraqueijo > git init Initialized empty Git repository in /Users/brunocalheira/Sites/acaraqueijo/.git/ ~/Sites/acaraqueijo > ls #listar conteúdo
  50. 50. ~/Sites/acaraqueijo > git init Initialized empty Git repository in /Users/brunocalheira/Sites/acaraqueijo/.git/ ~/Sites/acaraqueijo > ls #listar conteúdo index.html ~/Sites/acaraqueijo >
  51. 51. ~/Sites/acaraqueijo > ls -a #listar ocultos . .. .git index.html ~/Sites/acaraqueijo >
  52. 52. Git na Prática Rastreando Arquivos
  53. 53. Comando git status Verifica o status dos arquivos
  54. 54. ~/Sites/acaraqueijo > git status
  55. 55. ~/Sites/acaraqueijo > 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) ~/Sites/acaraqueijo >
  56. 56. Comando git add Adiciona arquivos ao Stage
  57. 57. Diretório de Trabalho Área de Staging Repositório Git
  58. 58. Diretório de Trabalho Área de Staging Repositório Git git add
  59. 59. ~/Sites/acaraqueijo > git add index.html
  60. 60. ~/Sites/acaraqueijo > git add index.html ~/Sites/acaraqueijo >
  61. 61. ~/Sites/acaraqueijo > git add index.html ~/Sites/acaraqueijo > git status
  62. 62. ~/Sites/acaraqueijo > git add index.html ~/Sites/acaraqueijo > git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: index.html ~/Sites/acaraqueijo >
  63. 63. Comando git commit Confirma o registro de uma versão do projeto no repositório
  64. 64. Diretório de Trabalho Área de Staging Repositório Git git commit
  65. 65. ~/Sites/acaraqueijo > git commit -m "Versão Inicial"
  66. 66. ~/Sites/acaraqueijo > git commit -m "Versão Inicial" [master (root-commit) ba338c4] Versão Inicial 1 file changed, 15 insertions(+) create mode 100644 index.html ~/Sites/acaraqueijo >
  67. 67. Comando git log Consulta os commits realizados
  68. 68. ~/Sites/acaraqueijo > git log commit ba338c4f76e5b6acd8846e24443abd49050d8105 Author: Bruno Calheira <bruno@calheira.com> Date: Sun May 24 17:01:14 2015 -0300 Versão Inicial ~/Sites/acaraqueijo >
  69. 69. Vocabulário Commit Hash Identificador único de cada commit. Composto por 40 caracteres usando uma função de checksum.
  70. 70. Git na Prática Alterando o projeto
  71. 71. ~/Sites/acaraqueijo > git status 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) style.css no changes added to commit (use "git add" and/or "git commit -a") ~/Sites/acaraqueijo >
  72. 72. ~/Sites/acaraqueijo > git add . ~/Sites/acaraqueijo >
  73. 73. ~/Sites/acaraqueijo > git add . ~/Sites/acaraqueijo > git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: index.html new file: style.css ~/Sites/acaraqueijo >
  74. 74. ~/Sites/acaraqueijo > git commit -m "Adiciona Folha de Estilos"
  75. 75. ~/Sites/acaraqueijo > git commit -m "Adiciona Folha de Estilos" [master 0bab0e3] Adiciona Folha de Estilos 2 files changed, 12 insertions(+) create mode 100644 style.css ~/Sites/acaraqueijo >
  76. 76. ~/Sites/acaraqueijo > git log --oneline
  77. 77. ~/Sites/acaraqueijo > git log --oneline 0bab0e3 Adiciona Folha de Estilos ba338c4 Versão Inicial ~/Sites/acaraqueijo >
  78. 78. Git na Prática Ramificando o projeto
  79. 79. Comando git branch exibe, cria e deleta ramos
  80. 80. ~/Sites/acaraqueijo > git branch
  81. 81. ~/Sites/acaraqueijo > git branch * master ~/Sites/acaraqueijo >
  82. 82. ~/Sites/acaraqueijo > git branch * master ~/Sites/acaraqueijo > git branch figura ~/Sites/acaraqueijo >
  83. 83. ~/Sites/acaraqueijo > git branch * master ~/Sites/acaraqueijo > git branch figura ~/Sites/acaraqueijo > git branch
  84. 84. ~/Sites/acaraqueijo > git branch * master ~/Sites/acaraqueijo > git branch figura ~/Sites/acaraqueijo > git branch figura * master ~/Sites/acaraqueijo >
  85. 85. Comando git checkout Carrega um arquivo Carrega um ramo Carrega uma versão
  86. 86. ~/Sites/acaraqueijo > git branch * master ~/Sites/acaraqueijo > git branch figura ~/Sites/acaraqueijo > git branch figura * master ~/Sites/acaraqueijo > git checkout figura
  87. 87. ~/Sites/acaraqueijo > git branch * master ~/Sites/acaraqueijo > git branch figura ~/Sites/acaraqueijo > git branch figura * master ~/Sites/acaraqueijo > git checkout figura Switched to branch 'figura' ~/Sites/acaraqueijo >
  88. 88. ~/Sites/acaraqueijo > git branch * master ~/Sites/acaraqueijo > git branch figura ~/Sites/acaraqueijo > git branch figura * master ~/Sites/acaraqueijo > git checkout figura Switched to branch 'figura' ~/Sites/acaraqueijo > git branch * figura master ~/Sites/acaraqueijo >
  89. 89. ~/Sites/acaraqueijo > git add . ~/Sites/acaraqueijo > git commit -m "Adiciona Foto"
  90. 90. ~/Sites/acaraqueijo > git add . ~/Sites/acaraqueijo > git commit -m "Adiciona Foto" [figura 0ba52ff] Adiciona Foto 2 files changed, 1 insertion(+) create mode 100644 acaraqueijo.jpg ~/Sites/acaraqueijo >
  91. 91. ~/Sites/acaraqueijo > git log --oneline 0ba52ff Adiciona Foto 0bab0e3 Adiciona Folha de Estilos ba338c4 Versão Inicial ~/Sites/acaraqueijo >
  92. 92. ~/Sites/acaraqueijo > git log --oneline 0ba52ff Adiciona Foto 0bab0e3 Adiciona Folha de Estilos ba338c4 Versão Inicial ~/Sites/acaraqueijo > git checkout master Switched to branch 'master' ~/Sites/acaraqueijo >
  93. 93. ~/Sites/acaraqueijo > git log --oneline 0ba52ff Adiciona Foto 0bab0e3 Adiciona Folha de Estilos ba338c4 Versão Inicial ~/Sites/acaraqueijo > git checkout master Switched to branch 'master' ~/Sites/acaraqueijo > git log --oneline
  94. 94. ~/Sites/acaraqueijo > git log --oneline 0ba52ff Adiciona Foto 0bab0e3 Adiciona Folha de Estilos ba338c4 Versão Inicial ~/Sites/acaraqueijo > git checkout master Switched to branch 'master' ~/Sites/acaraqueijo > git log --oneline 0bab0e3 Adiciona Folha de Estilos ba338c4 Versão Inicial ~/Sites/acaraqueijo >
  95. 95. Comando git merge Agrega as versões de outro ramo no ramo atual
  96. 96. ~/Sites/acaraqueijo > git merge figura
  97. 97. ~/Sites/acaraqueijo > git merge figura Updating 0bab0e3..0ba52ff Fast-forward acaraqueijo.jpg | Bin 0 -> 50510 bytes index.html | 1 + 2 files changed, 1 insertion(+) create mode 100644 acaraqueijo.jpg ~/Sites/acaraqueijo >
  98. 98. ~/Sites/acaraqueijo > git merge figura Updating 0bab0e3..0ba52ff Fast-forward acaraqueijo.jpg | Bin 0 -> 50510 bytes index.html | 1 + 2 files changed, 1 insertion(+) create mode 100644 acaraqueijo.jpg ~/Sites/acaraqueijo > git log --oneline
  99. 99. ~/Sites/acaraqueijo > git merge figura Updating 0bab0e3..0ba52ff Fast-forward acaraqueijo.jpg | Bin 0 -> 50510 bytes index.html | 1 + 2 files changed, 1 insertion(+) create mode 100644 acaraqueijo.jpg ~/Sites/acaraqueijo > git log --oneline 0ba52ff Adiciona Foto 0bab0e3 Adiciona Folha de Estilos ba338c4 Versão Inicial ~/Sites/acaraqueijo >
  100. 100. Git na Prática Repositórios Remotos
  101. 101. GitLab.com
  102. 102. Bitbucket.com
  103. 103. GitHub.com
  104. 104. Comando git remote lista, adiciona, remove repositórios remotos
  105. 105. ~/Sites/acaraqueijo > git remote add origin https: //github.com/calheira/acaraqueijo.git ~/Sites/acaraqueijo >
  106. 106. Comando git push Envia as atualizações do repositório local para o repositório remoto
  107. 107. ~/Sites/acaraqueijo > git remote add origin https: //github.com/calheira/acaraqueijo.git ~/Sites/acaraqueijo > git push -u origin master
  108. 108. ~/Sites/acaraqueijo > git remote add origin https: //github.com/calheira/acaraqueijo.git ~/Sites/acaraqueijo > git push -u origin master Counting objects: 11, done. Delta compression using up to 4 threads. Compressing objects: 100% (10/10), done. Writing objects: 100% (11/11), 50.42 KiB | 0 bytes/s, done. Total 11 (delta 2), reused 0 (delta 0) To https://github.com/calheira/acaraqueijo.git * [new branch] master -> master Branch master set up to track remote branch master from origin. ~/Sites/acaraqueijo >
  109. 109. https://github.com/calheira/acaraqueijo
  110. 110. Git & WordPress
  111. 111. Git & WordPress Utilize o .gitignore para excluir os aquivos e diretórios sensíveis.
  112. 112. Git & WordPress Use o git controlar apenas arquivos que você altera com frequência.
  113. 113. Git & WordPress Use o git controlar apenas arquivos que você altera com frequência. Controle apenas seu Tema Filho.
  114. 114. Git & WordPress Para controlar o BD utilize o plugin Revisr.
  115. 115. revisr.io
  116. 116. Onde aprender mais? http://git-scm.com/book/pt-br/v1
  117. 117. Obrigado pela atenção!
  118. 118. Dúvidas? Contato bruno@calheira.com @brunocalheira

×