Save 37% off PRO during our Black Friday Sale! »

Git, o que é, do que é feito, para que serve?

E822acb0564c5632aae69fef35f85b3d?s=47 Scalone
November 17, 2016

Git, o que é, do que é feito, para que serve?

Apesar de estarmos em 2016, muitos programadores não entendem o que é Git, ou o que ele faz, apenas decoram comandos para executarem no final do dia de trabalho. Vamos mudar isso! Vamos conversar sobre Git focando na prática, entre o iniciante e avançado. Discutir o conceito por trás do Git e controles de versão distribuídos, assim como fluxos de trabalho, boas e más praticas e comandos úteis.

E822acb0564c5632aae69fef35f85b3d?s=128

Scalone

November 17, 2016
Tweet

Transcript

  1. Thiago Scalone - @Scalone O que é? Do que é

    feito? Para que server? Git
  2. Wecolme Message! The activities of a company associated with buying

    and selling a product or service that includes advertising, social media, selling products Marketing is based on thinking about the business in terms of customer needs and their satisfaction marketing differs from selling because in the words of the best university of the world.
  3. Wecolme Message! The activities of a company associated with buying

    and selling a product or service that includes advertising, social media, selling products Marketing is based on thinking about the business in terms of customer needs and their satisfaction marketing differs from selling because in the words of the best university of the world.
  4. Wecolme Message! The activities of a company associated with buying

    and selling a product or service that includes advertising, social media, selling products Marketing is based on thinking about the business in terms of customer needs and their satisfaction marketing differs from selling because in the words of the best university of the world.
  5. Disclaimer

  6. Git

  7. Joãozinho

  8. None
  9. None
  10. None
  11. None
  12. WRONG

  13. git

  14. git git commit -a

  15. git git commit -a git pull

  16. git git commit -a git pull git push

  17. git ?

  18. git ctrl + c ctrl + v

  19. Mariazinha

  20. None
  21. None
  22. None
  23. None
  24. None
  25. None
  26. SUCESSO!

  27. MANJA?

  28. Conhecimento

  29. CONHECIMENTO Conhecimento é o ato ou efeito de conhecer -

    Wikipédia
  30. CONHECIMENTO Conhecimento é o ato ou efeito de conhecer -

    Wikipédia
  31. CONHECIMENTO O conhecimento é objeto escorregadio - Sidney G. Winter

  32. Conhecimento Taxonomia do

  33. Simon Sinek

  34. How great leaders inspire action (2009) Golden Circle

  35. How great leaders inspire action (2009) Golden Circle What O

    que é ou o que é
  36. How great leaders inspire action (2009) Golden Circle How Como

    é feito, processo What O que é ou o que é
  37. How great leaders inspire action (2009) Golden Circle Why Porque

    fazemos algo How Como é feito, processo What O que é ou o que é
  38. The learning economy - Lundvall And Johnson (1994)

  39. The learning economy - Lundvall And Johnson (1994) Why Porque

    fazemos algo How Como é feito, processo What O que é ou o que é
  40. The learning economy - Lundvall And Johnson (1994) Why Porque

    fazemos algo How Como é feito, processo Know-What O que é ou o que é
  41. The learning economy - Lundvall And Johnson (1994) Why Porque

    fazemos algo Know-How Como é feito, processo Know-What O que é ou o que é
  42. The learning economy - Lundvall And Johnson (1994) Know-Why Porque

    fazemos algo Know-How Como é feito, processo Know-What O que é ou o que é
  43. The learning economy - Lundvall And Johnson (1994) Know-Why Porque

    fazemos algo Know-How Como é feito, processo Know-What O que é ou o que é Know-Who Conecta pessoas
  44. Cleveland Harlan

  45. 1982 Harlan

  46. of Understanding The continuum Cleveland H. "Information as Resource", The

    Futurist, December 1982 p. 34-39.
  47. Conhecimento O continuum do Cleveland H. "Information as Resource", The

    Futurist, December 1982 p. 34-39.
  48. do Conhecimento A continuidade Cleveland H. "Information as Resource", The

    Futurist, December 1982 p. 34-39.
  49. The continuum of Understanding

  50. The continuum of Understanding Contexto

  51. The continuum of Understanding Contexto Entendimento

  52. The continuum of Understanding Contexto Entendimento Recolher partes

  53. The continuum of Understanding Contexto Entendimento Recolher partes Conectar partes

  54. The continuum of Understanding Contexto Entendimento Recolher partes Conectar partes

    Formação de um todo
  55. The continuum of Understanding Contexto Entendimento Recolher partes Conectar partes

    Formação de um todo Junção de todos
  56. The continuum of Understanding Contexto Entendimento Recolher partes Conectar partes

    Formação de um todo Junção de todos
  57. The continuum of Understanding Contexto Entendimento Recolher partes Conectar partes

    Formação de um todo Junção de todos Pesquisa
  58. The continuum of Understanding Contexto Entendimento Recolher partes Absorção Conectar

    partes Formação de um todo Junção de todos Pesquisa
  59. The continuum of Understanding Contexto Entendimento Recolher partes Absorção Aplicação

    Conectar partes Formação de um todo Junção de todos Pesquisa
  60. The continuum of Understanding Contexto Entendimento Recolher partes Absorção Aplicação

    Interação Conectar partes Formação de um todo Junção de todos Pesquisa
  61. The continuum of Understanding Contexto Entendimento Recolher partes Absorção Aplicação

    Interação Reflecção Conectar partes Formação de um todo Junção de todos Pesquisa
  62. The continuum of Understanding Dado Contexto Entendimento Recolher partes Absorção

    Aplicação Interação Reflecção Conectar partes Formação de um todo Junção de todos Pesquisa
  63. The continuum of Understanding Dado Informação Contexto Entendimento Recolher partes

    Absorção Aplicação Interação Reflecção Conectar partes Formação de um todo Junção de todos Pesquisa
  64. The continuum of Understanding Dado Informação Conhecimento Contexto Entendimento Recolher

    partes Absorção Aplicação Interação Reflecção Conectar partes Formação de um todo Junção de todos Pesquisa
  65. The continuum of Understanding Dado Informação Conhecimento Sabedoria Contexto Entendimento

    Recolher partes Absorção Aplicação Interação Reflecção Conectar partes Formação de um todo Junção de todos Pesquisa
  66. The continuum of Understanding Dado Informação Conhecimento Sabedoria Contexto Entendimento

    Past Recolher partes Absorção Aplicação Interação Reflecção Conectar partes Formação de um todo Junção de todos Pesquisa
  67. The continuum of Understanding Dado Informação Conhecimento Sabedoria Contexto Entendimento

    Past Future Recolher partes Absorção Aplicação Interação Reflecção Conectar partes Formação de um todo Junção de todos Pesquisa
  68. The continuum of Understanding Dado What How Why Contexto Entendimento

    Past Future Recolher partes Absorção Aplicação Interação Reflecção Conectar partes Formação de um todo Junção de todos Pesquisa
  69. 322 A.C. Aristótoles

  70. Aristótoles What Epistrèmè teórico

  71. Aristótoles What How Epistrèmè teórico Technè prática

  72. Aristótoles What How Why Epistrèmè teórico Technè prática Phoronesis sabedoria

  73. git ?

  74. WRONG

  75. git git commit -a git pull git push

  76. None
  77. git

  78. content-addressable filesystem

  79. content-addressable filesystem

  80. git key value store

  81. git key value store qualquer coisa

  82. git key value store qualquer coisa bash

  83. git key value store qualquer coisa bash unix FS +/-

    inode
  84. Como?

  85. Internals!

  86. echo -n "123456" | openssl sha1 7c4a8d09ca3762af61e59520943dc26494f8941b SHA1

  87. tree commit blob objects

  88. Tree echo 'version 1' > test.txt git add test.txt echo

    'version 2' > test.txt git add test.txt new.txt
  89. Commit echo 'version 1' > test.txt git add test.txt git

    commit -m “first commit” echo 'version 2' > test.txt git add test.txt new.txt git commit -m “second commit” echo 'version 3' > test.txt git add test.txt git commit -m “third commit”
  90. Commit sha1( commit message => "second commit" commiter => Thiago

    Scalone <thiago@scalone.com.br> commit date => Sat Nov 8 11:13:49 2014 +0100 author => Thiago Scalone <thiago@scalone.com.br> author date => Sat Nov 8 11:13:49 2016 +0100 tree => 9c435a86e664be00db0d973e981425e4a3ef3f8d parents => [0d973e9c4353ef3f8ddb98a86e664be001425e4a] )
  91. Commit echo 'version 1' > test.txt git add test.txt git

    commit -m “first commit” echo 'version 2' > test.txt git add test.txt new.txt git commit -m “second commit” echo 'version 3' > test.txt git add test.txt git commit -m “third commit”
  92. Blob >> content = "version1” >> header = "blob #{content.length}\0”

    >> store = header + content >> sha1 = Digest::SHA1.hexdigest(store) >> zlib_content = Zlib::Deflate.deflate(store) >> path = '.git/objects/' + sha1[0,2] + '/' + sha1[2,38] => ".git/objects/bd/9dbf5aae1a3862dd1526723246b20206e5fc37"
  93. tag branch remotes Refs

  94. .git ʮ── HEAD ʮ── branches ʮ── config ʮ── hooks │

    ʮ── pre-commit.sample │ ʮ── pre-push.sample │ └── ... ʮ── info │ └── exclude ʮ── objects │ ʮ── info │ └── pack └── refs ʮ── heads └── tags
  95. .git ʮ── HEAD ʮ── branches ʮ── config ʮ── hooks │

    ʮ── pre-commit.sample │ ʮ── pre-push.sample │ └── ... ʮ── info │ └── exclude ʮ── objects │ ʮ── info │ └── pack └── refs ʮ── heads └── tags
  96. .git ʮ── HEAD ʮ── branches ʮ── config ʮ── hooks │

    ʮ── pre-commit.sample │ ʮ── pre-push.sample │ └── ... ʮ── info │ └── exclude ʮ── objects │ ʮ── info │ └── pack └── refs ʮ── heads └── tags
  97. .git ʮ── HEAD ʮ── branches ʮ── config ʮ── hooks │

    ʮ── pre-commit.sample │ ʮ── pre-push.sample │ └── ... ʮ── info │ └── exclude ʮ── objects │ ʮ── info │ └── pack └── refs ʮ── heads └── tags
  98. .git ʮ── HEAD ʮ── branches ʮ── config ʮ── hooks │

    ʮ── pre-commit.sample │ ʮ── pre-push.sample │ └── ... ʮ── info │ └── exclude ʮ── objects │ ʮ── info │ └── pack └── refs ʮ── heads └── tags
  99. .git ʮ── HEAD ʮ── branches ʮ── config ʮ── hooks │

    ʮ── pre-commit.sample │ ʮ── pre-push.sample │ └── ... ʮ── info │ └── exclude ʮ── objects │ ʮ── info │ └── pack └── refs ʮ── heads └── tags
  100. .git ʮ── objects │ ʮ── 10 │ │ └── 74bb1f6448d31ee581fe45f51c7d6df19

    │ ʮ── 11 │ │ └── 8b6560291dd5d8cf3bf9898c998df7733 │ ʮ── 8b │ │ └── 1b88b09acaa340544d590c0c838f2c14 │ ʮ── ab │ │ └── f6ab114f286392ad2c4601b95986095c0 │ ʮ── c3 │ │ └── b038b5a9c7e5b26dd828ac5d1a615d3 │ ʮ── e6 │ │ └── 9de29bb2d1d6434b8b29ae775ad8c2e
  101. .git ʮ── HEAD ʮ── branches ʮ── config ʮ── hooks │

    ʮ── pre-commit.sample │ ʮ── pre-push.sample │ └── ... ʮ── info │ └── exclude ʮ── objects │ ʮ── info │ └── pack └── refs ʮ── heads └── tags
  102. -- amend

  103. Amend sha1( commit message => "second commit" commiter => Thiago

    Scalone <thiago@scalone.com.br> commit date => Sat Nov 8 11:13:49 2014 +0100 author => Thiago Scalone <thiago@scalone.com.br> author date => Sat Nov 8 11:13:49 2016 +0100 tree => 9c435a86e664be00db0d973e981425e4a3ef3f8d parents => [0d973e9c4353ef3f8ddb98a86e664be001425e4a] )
  104. Rebase Vs Merge

  105. Rebase Vs Merge

  106. Rebase Vs Merge

  107. Gitx e Fragmentação

  108. Single branch flow

  109. Single branch flow Tudo para master Todos os commits pendentes

    para review Commits após 2 dias sem review são rejeitados Commit rejeitado para o build
  110. git commit -a

  111. None
  112. @scalone Thank you THIAGO SCALONE - thiago@scalone.com.br