how gitworks
play

How GitWorks Git IsNotWhatYouThink Were going to talk aboutthe - PowerPoint PPT Presentation

How GitWorks Git IsNotWhatYouThink Were going to talk aboutthe internals ofGit. Porcelain Commands gitadd gitcommit git push gitpull git branch gitcheckout git merge gitrebase


  1. How GitWorks Git IsNotWhatYouThink

  2. We’re going to talk aboutthe internals ofGit.

  3. “Porcelain” Commands gitadd ▪ gitcommit ▪ git push ▪ gitpull ▪ git branch ▪ gitcheckout ▪ git merge ▪ gitrebase ▪ … ▪

  4. “Plumbing” Commands git cat-file ▪ git hash-object ▪ gitcount-objects ▪ … ▪

  5. If youwant to masterGit, don’t worry about learning thecommands. Instead, learn themodel.

  6. Git

  7. GitIs.. …a Distributed RevisionControl System

  8. GitIs.. …a Revision ControlSystem

  9. GitIs.. …a Stupid Content Tracker

  10. GitIs.. …a PersistentMap

  11. Values andKeys Any sequence ofbytes SHA1hash

  12. Values andKeys “ApplePie” 23991897e13e47ed0adb91a0082c31c82fe0cbe5

  13. Every object in Git hasitsown SHA1. So, what if theycollide?

  14. Winning theJackpot 1 chance in175.000.000

  15. Winning theJackpot

  16. Chances of Two SHA1sColliding

  17. SHA1s are unique in theuniverse.

  18. GitIs.. …a PersistentMap

  19. GitIs.. …a Stupid Content Tracker

  20. The ObjectDatabase ./ 1177 be4d

  21. The ObjectDatabase 3ee7 recipes/ ./ menu.txt 1177 be4d Apple Pie 2399

  22. The ObjectDatabase Put your recipes in this directory, one README.txt recipe per file. 3ee7 361a recipes/ apple_pie.txt ./ menu.txt 1177 be4d Apple Pie 2399

  23. The Git ObjectModel Put your recipes in this directory, one README.txt recipe per file. 3ee7 361a recipes/ apple_pie.txt ./ menu.txt 1177 be4d Apple Pie 2399

  24. The Git ObjectModel Put your recipes in this directory, one README.txt recipe per file. 3ee7 361a 2508 recipes/ apple_pie.txt ./ menu.txt 1177 be4d Apple Pie 2399

  25. The Git ObjectModel Put your recipes in this directory, one README.txt recipe per file. ./ 3ee7 361a 2508 6ee0 recipes/ apple_pie.txt ./ menu.txt 1177 be4d Apple Pie 2399

  26. The Git ObjectModel Apple Pie Cheesecake f1fe menu.txt Put your recipes in this directory, one README.txt recipe per file. ./ recipes/ 3ee7 361a 2508 6ee0 recipes/ apple_pie.txt ./ menu.txt 1177 be4d Apple Pie 2399

  27. The Git ObjectModel Apple Pie Cheesecake mytag f1fe menu.txt Put your recipes in this directory, one README.txt recipe per file. ./ recipes/ 3ee7 361a 2508 6ee0 recipes/ apple_pie.txt ./ menu.txt 1177 be4d Apple Pie 2399

  28. GitObjects Blobs ▪ Trees ▪ Commits ▪ AnnotatedTags ▪

  29. What Git ReallyIs f1fe 3ee7 361a 2508 6ee0 1177 be4d 2399

  30. GitIs.. …a Stupid Content Tracker

Recommend


More recommend