やさしいgitの内部構造 - yapcasia2013

Download やさしいGitの内部構造 - yapcasia2013

If you can't read please download the document

Upload: dqneo

Post on 17-Jun-2015

4.602 views

Category:

Documents


1 download

DESCRIPTION

Gitの内部構造についてのわかりやすい解説です。

TRANSCRIPT

  • 1. Git YAPC::Asia2013 @DQNEO

2. @DQNEO PHP CPAN Author () 3. https://github.com/DQNEO/S3ParallelUploader https://github.com/DQNEO/ethnam https://github.com/DQNEO/Amazon-S3-FastUploader Java: S3ParallelUploader Perl: Amazon::S3::FastUploader PHP: Ethnam 4. 5. m(__)m 6. 7. 8. Git 9. VCS 10. 11. 12. 13. Q. git commit 1. 2. 14. 1. 2. 15. 16. = 17. db23d002c336f1ed408c2ef82b7ccb6a33c9f24c 18. = = = 19. Q. 1. (1MB) 2. (1KB) 20. 21. 100,000,000 22. git checkout - 23. Q. 1. (1MB) 2. (1KB) 24. 1. 2. 25. 2 26. Git C 27. db23d002c336f1ed408c2ef82b7ccb6a33c9f24c 28. 29. $ git cat-file -p 6e3c7a7 tree b2ba084f61385d9560daa1b43a98014c27620cee parent 365d440b4c1ab31703ccbb7e2a9980d49cf8ebf6 parent 93f2ceeb0f0608f3754d379dcc473297ad1f0f43 author Tatsuhiko Miyagawa committer Tatsuhiko Miyagawa Merge pull request #430 from kazeburo/master 30. $ git cat-file -p 6e3c7a7 tree: parent: tree b2ba084f61385d9560daa1b43a98014c27620cee parent 365d440b4c1ab31703ccbb7e2a9980d49cf8ebf6 parent 93f2ceeb0f0608f3754d379dcc473297ad1f0f43 author Tatsuhiko Miyagawa committer Tatsuhiko Miyagawa Merge pull request #430 from kazeburo/master 31. A B 32. A C B 33. Q. 1. 2. 34. 1. 2. 35. 2 1 36. git log pgit show 2 37. 38. README.md META.json Tree Object Blob Object () (Plack) lib scripts HTTP Message PSGI.pm plackup 39. $ git ls-tree HEAD 100644 blob ba2434a0ebdb210e048f2e688652436569e4ffdc .gitignore 100644 blob e6bb679f9e41bc960f72b08b66c6ed46d4c90d4c .mailmap 100644 blob 5533888a0be3813e787cf17c60587fe313c6c23d .travis.yml 100644 blob 362d01e6f7b18e450f0a62187554e64c84f5cb10 Changes 100644 blob 0e07fb7a9173428f3b0f58035a781687bef06542 LICENSE 100644 blob 717d88241a49c58e4d811b555abdc9987a202e3c META.json 100644 blob 5d4062017fb9fe2631691b36a5167ad1d33bb79e Makefile.PL 100644 blob df73cecb9a6771392f8ffb4bbf46ad1057953338 README.md 040000 tree 17d81860c97909ce36c3a7bcd2ea2d89706e4cd1 benchmarks 100644 blob 9dca1adad84d3d4e57e297c2b4f57eaa0a54e3db cpanfile 100644 blob b1835cef488b7ad7cdee62882c4325851ce0404c dist.ini 040000 tree 16c9b6ece58b6028c10f0d983de5781c0cabb964 eg 040000 tree 206a4bef7128a678a020126744b058cbbea6bcac lib 040000 tree 359858f5219cd2e5f5171012e1b8f5f0da684301 script 040000 tree 38100c96e5798b5a513f95b36b85af38a377d5d9 share 040000 tree 8af8046f440af59731f8e93b48d62228ecfb8d83 t 040000 tree d2d27ab4124b7cf8194282c7493001543850bd0f xt 40. 41. Plack 8c461ae102afbcbbe279bffb171244b710650da1 42. Plack 8c461ae102afbcbbe279bffb171244b710650da1 43. 44. // // Miyagawa git tag 1.0000 8c461ae Plack1.0000 45. git show 1.0000 git show 8c461ae 1.0000 8c461ae 46. 47. 48. 49. Git 50. 51. A branchX 52. A B branchX 53. A C B branchX Like 54. $ cat .git/refs/heads/master 6e3c7a777a7231ff9bbce276e675b16f43287bef 55. git show master git show 8c461ae git log master git log 8c461ae 56. 57. 58. 59. ! = 60. 61. Git 62. 63. 64.