Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

#2 - Git - DAG

796 views

Published on

DAG, ou Directed Acyclic Graph é a fundamental para a compreensão da ferramenta.

Published in: Software
  • Be the first to comment

#2 - Git - DAG

  1. 1. Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br #2 - Git - DAG
  2. 2. Rodrigo Branas rodrigo.branas@agilecode.com.br http://www.agilecode.com.br • Arquiteto de Software na Gennera • Professor na Agile Code • Autor na Java Magazine e PacktPub • Palestrante
  3. 3. http://www.youtube.com/rodrigobranas
  4. 4. Obtendo as chaves do castelo...
  5. 5. DAG, ou Directed Acyclic Graph, é o conceito fundamental utilizado pelo Git para representar a trajetória dos commits ao longo do tempo.
  6. 6. Cada commit representa o estado do repositório em um determinado momento do tempo.
  7. 7. Criando um commit...
  8. 8. echo a > a.txt echo b > b.txt
  9. 9. git commit
  10. 10. git status
  11. 11. git add a.txt git status git add b.txt git status
  12. 12. git add -A ou --all git status
  13. 13. Espera, mas como exatamente os arquivos ficam armazenados?
  14. 14. tree .git
  15. 15. O Git utiliza o algoritmo de dispersão criptográfica SHA-1 para calcular um hash de 40 bytes com o objetivo de indexar, identificar e manter a integridade de cada arquivo.
  16. 16. git hash-object a.txt
  17. 17. git commit -m "a.txt e b.txt"
  18. 18. git status
  19. 19. git log
  20. 20. git log -p ou --patch
  21. 21. E agora, como o commit se relaciona com os arquivos?
  22. 22. git cat-file -p <object>
  23. 23. commit a9ae tree f4b3 parent tree f4b3 100644 blob 7898 a.txt 100644 blob 6178 b.txt blob 7898 a blob 6178 b
  24. 24. Vamos fazer mais um commit...
  25. 25. echo c > c.txt git status git add -A git commit -m "c.txt"
  26. 26. git log
  27. 27. E agora, como o commit se relaciona com os arquivos?
  28. 28. git cat-file -p <object>
  29. 29. commit a9ae tree f4b3 parent commit 372d tree d11b parent a9ae tree f4b3 100644 blob 7898 a.txt 100644 blob 6178 b.txt tree d11b 100644 blob 7898 a.txt 100644 blob 6178 b.txt 100644 blob f2ad c.txt blob 7898 a blob 6178 b blob f2ad c
  30. 30. E se um arquivo for alterado?
  31. 31. git status
  32. 32. git diff
  33. 33. git add -A
  34. 34. git status
  35. 35. git diff
  36. 36. git diff --staged
  37. 37. git commit -m "Alterando c.txt"
  38. 38. git log
  39. 39. E agora, como o commit se relaciona com os arquivos?
  40. 40. git cat-file -p <object>
  41. 41. commit a9ae tree f4b3 parent commit 372d tree d11b parent a9ae commit 7f64 tree 6300 parent 372d tree f4b3 100644 blob 7898 a.txt 100644 blob 6178 b.txt tree d11b 100644 blob 7898 a.txt 100644 blob 6178 b.txt 100644 blob f2ad c.txt tree 6300 100644 blob 7898 a.txt 100644 blob 6178 b.txt 100644 blob 16f9 c.txt blob 7898 a blob 6178 b blob f2ad c blob 16f9 c2
  42. 42. E se apenas o nome do arquivo for alterado?
  43. 43. mv c.txt c2.txt
  44. 44. git status
  45. 45. git add -A git status git commit -m "Alterando o nome do arquivo para c2.txt"
  46. 46. git log --oneline
  47. 47. E agora, como fica?
  48. 48. git cat-file -p <object>
  49. 49. commit a9ae tree f4b3 parent commit 372d tree d11b parent a9ae commit 7f64 tree 6300 parent 372d tree f4b3 100644 blob 7898 a.txt 100644 blob 6178 b.txt tree d11b 100644 blob 7898 a.txt 100644 blob 6178 b.txt 100644 blob f2ad c.txt tree 6300 100644 blob 7898 a.txt 100644 blob 6178 b.txt 100644 blob 16f9 c.txt blob 7898 a blob 6178 b blob f2ad c blob 16f9 c2 commit b274 tree 15eb parent 7f64 tree 15eb 100644 blob 7898 a.txt 100644 blob 6178 b.txt 100644 blob 16f9 c2.txt
  50. 50. Rodrigo Branas Site: http://www.agilecode.com.br Twitter: @rodrigobranas Facebook: http://www.facebook.com/canalrodrigobranas SlideShare: http://www.slideshare.com/rodrigobranas YouTube: http://www.youtube.com/rodrigobranas LinkedIn: http://br.linkedin.com/in/rodrigobranas +Plus: https://plus.google.com/+RodrigoBranas GitHub: http://www.github.com/rodrigobranas

×