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

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

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.

Scalone

November 17, 2016
Tweet

More Decks by Scalone

Other Decks in Programming

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

  6. git

  7. How great leaders inspire action (2009) Golden Circle How Como

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

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

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

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

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

    fazemos algo Know-How Como é feito, processo Know-What O que é ou o que é
  13. 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
  14. The continuum of Understanding Contexto Entendimento Recolher partes Absorção Aplicação

    Conectar partes Formação de um todo Junção de todos Pesquisa
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. git

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

    'version 2' > test.txt git add test.txt new.txt
  26. 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”
  27. Commit sha1( commit message => "second commit" commiter => Thiago

    Scalone <[email protected]> commit date => Sat Nov 8 11:13:49 2014 +0100 author => Thiago Scalone <[email protected]> author date => Sat Nov 8 11:13:49 2016 +0100 tree => 9c435a86e664be00db0d973e981425e4a3ef3f8d parents => [0d973e9c4353ef3f8ddb98a86e664be001425e4a] )
  28. 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”
  29. 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"
  30. .git ʮ── HEAD ʮ── branches ʮ── config ʮ── hooks │

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

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

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

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

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

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

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

    ʮ── pre-commit.sample │ ʮ── pre-push.sample │ └── ... ʮ── info │ └── exclude ʮ── objects │ ʮ── info │ └── pack └── refs ʮ── heads └── tags
  38. Amend sha1( commit message => "second commit" commiter => Thiago

    Scalone <[email protected]> commit date => Sat Nov 8 11:13:49 2014 +0100 author => Thiago Scalone <[email protected]> author date => Sat Nov 8 11:13:49 2016 +0100 tree => 9c435a86e664be00db0d973e981425e4a3ef3f8d parents => [0d973e9c4353ef3f8ddb98a86e664be001425e4a] )
  39. 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