$30 off During Our Annual Pro Sale. View Details »

Gitはなぜ難しいのか

 Gitはなぜ難しいのか

KRAYで行われたGit勉強会での発表資料です。

Hiroki Yoshioka

July 05, 2013
Tweet

More Decks by Hiroki Yoshioka

Other Decks in Programming

Transcript

  1. (JU͸ͳͥ೉͍͠ͷ͔
    #kraygit01
    @irohiroki

    View Slide

  2. View Slide

  3. ࠓ೔ͷτϐοΫε
    ϒϥοΫϘοΫεΛղ͖໌͔͢
    ίϛοτ
    ϒϥϯν
    lΠϯσοΫεzͬͯԿͳͷ
    ฆΒΘ͍͠ίϚϯυʹ͍ͭͯ

    View Slide

  4. Ͳ͏ͯ͠όʔδϣϯ؅ཧ͢Δͷʁ
    Ҏલͷঢ়ଶʹ໭͍ͨ͠
    มߋ఺Λ஌Γ͍ͨ
    ୭͕ɺͳͥมߋͨ͠ͷ͔ه࿥͍ͨ͠

    View Slide

  5. ԿΛ؅ཧ͢Δʁ
    ͍ͭ
    ୭͕
    ͳͥ
    ͲͷϦϏδϣϯΛϕʔεʹ
    ͲΜͳมߋΛ͔ͨ͠

    View Slide

  6. ԿΛ؅ཧ͢Δʁ
    ͍ͭ
    ୭͕
    ͳͥ
    ͲͷϦϏδϣϯΛϕʔεʹ
    ͲΜͳมߋΛ͔ͨ͠
    ˠ·ͱΊͯlίϛοτzͱ͍͏σʔλʹ

    View Slide

  7. lͲΜͳมߋΛͨ͠z
    σΟϨΫτϦͱϑΝΠϧͷߏ੒Λอଘ
    lπϦʔzͱlϒϩϒz
    ίϛοτ͸ࠜຊͷπϦʔΛه࿥

    View Slide

  8. ͳͥϕʔεʹͨ͠ϦϏδϣϯʢ਌ʣ͕
    ඞཁʁ
    ൪߸ Ͱ͸μϝͳͷʁ
    ࢬ෼͔Ε͕ՄೳʹͳΔ
    ̎ͭҎ্ͷ਌Λ࣋ͭʢʹϚʔδʣ΋Մೳʹ

    View Slide

  9. ίϛοτ
    ɾ࣌ࠁ
    ɾίϛολʔ
    ɾίϝϯτ
    ɾπϦʔ
    ɾ਌

    View Slide

  10. ίϛοτ
    ɾ࣌ࠁ
    ɾίϛολʔ
    ɾίϝϯτ
    ɾπϦʔ
    ɾ਌
    ίϛοτ
    ɾ࣌ࠁ
    ɾίϛολʔ
    ɾίϝϯτ
    ɾπϦʔ
    ɾ਌

    View Slide

  11. ίϛοτ
    ɾ࣌ࠁ
    ɾίϛολʔ
    ɾίϝϯτ
    ɾπϦʔ
    ɾ਌
    ίϛοτ
    ɾ࣌ࠁ
    ɾίϛολʔ
    ɾίϝϯτ
    ɾπϦʔ
    ɾ਌
    πϦʔ
    ɾϒϩϒ
    ɾπϦʔ
    ϒϩϒ
    πϦʔ
    ɾϒϩϒ ϒϩϒ
    πϦʔ
    ɾϒϩϒ
    ɾπϦʔ
    ϒϩϒ
    πϦʔ
    ɾϒϩϒ ϒϩϒ

    View Slide

  12. ίϛοτ
    ɾ࣌ࠁ
    ɾίϛολʔ
    ɾίϝϯτ
    ɾπϦʔ
    ɾ਌
    ίϛοτ
    ɾ࣌ࠁ
    ɾίϛολʔ
    ɾίϝϯτ
    ɾπϦʔ
    ɾ਌
    πϦʔ
    ɾϒϩϒ
    ɾπϦʔ
    ϒϩϒ
    πϦʔ
    ɾϒϩϒ ϒϩϒ
    πϦʔ
    ɾϒϩϒ
    ɾπϦʔ
    ϒϩϒ
    πϦʔ
    ɾϒϩϒ ϒϩϒ
    1st line
    1st line
    2nd line

    View Slide

  13. Ծઆɿ
    lίϛοτz͕ந৅త͔ͩΒ೉͍͠ʁ
    ίϛοτ͸ˣ͕ॻ͔ΕͨϑΝΠϧʹ͗͢ͳ͍
    ίϛοτ࣌ࠁʗίϛολʔʗίϝϯτʗ਌ʗπϦʔͷ໊લʗͳͲ
    πϦʔ΍ϒϩϒ΋ϑΝΠϧ
    ίϛοτɾπϦʔɾϒϩϒΛ·ͱΊͯlΦϒδΣΫτzͱݺͼ·͢

    View Slide

  14. ΦϒδΣΫτͷಾΛ໌͔͢
    ΦϒδΣΫτͷछྨ΍௕͞Λද͢ϔομΛ෇͚Δ
    ϋογϡʢ4)"ʣΛܭࢉ͢Δ
    ѹॖ͢Δʢ%FqBUFʣ
    HJUPCKFDUTҎԼʹ֨ೲ͢Δɻ͜ͷͱ͖ˢͷϋογϡΛ໊લʹ

    View Slide

  15. View Slide

  16. HJU͸ϑΝΠϧૢ࡞ʹ͗͢ͳ͍
    DPNNJUˠHJUPCKFDUTʹอଘ
    QVMMˠϦϞʔτ͔ΒϩʔΧϧʹϑΝΠϧΛίϐʔ
    ͳͲʜ

    View Slide

  17. HJU͸ϑΝΠϧૢ࡞ʹ͗͢ͳ͍
    DPNNJUˠHJUPCKFDUTʹอଘ
    QVMMˠϦϞʔτ͔ΒϩʔΧϧʹϑΝΠϧΛίϐʔ
    ͳͲʜ
    ҙ֎ͱ୯७

    View Slide

  18. ผ໊Ͱ͞Βʹศར
    DCGDGFBFFDFGFC
    lϒϥϯνzʹίϛοτͷ࿈ͳΓ
    lϒϥϯν໊zʹϒϥϯνͷઌ୺ͷίϛοτͷผ໊
    ίϛοτΛੵΉͱ৽ͨͳઌ୺ʹҠಈ͢Δ

    View Slide

  19. ϒϥϯν໊͸ઌ୺ͷίϛοτͷผ໊
    ίϛοτ
    ίϛοτ
    ϒϥϯν

    View Slide

  20. ϒϥϯν໊͸ઌ୺ͷίϛοτͷผ໊
    ίϛοτ
    ίϛοτ
    ϒϥϯν
    ίϛοτ

    View Slide

  21. ϒϥϯν໊͸ઌ୺ͷίϛοτͷผ໊
    ίϛοτ
    ίϛοτ
    ίϛοτ

    View Slide

  22. ϒϥϯν໊͸ઌ୺ͷίϛοτͷผ໊
    ίϛοτ
    ίϛοτ
    ίϛοτ ϒϥϯν

    View Slide

  23. Ծઆɿ
    lϒϥϯνz͕ந৅త͔ͩΒ೉͍͠ʁ
    HJUSFGTIFBETσΟϨΫτϦʹϒϥϯν໊ͷϑΝΠϧ͕͋Δ
    ίϛοτͷຊ໊ʢ4)"ʣ͕ॻ͔ΕͯΔ

    View Slide

  24. Ծઆɿ
    lϒϥϯνz͕ந৅త͔ͩΒ೉͍͠ʁ
    HJUSFGTIFBETσΟϨΫτϦʹϒϥϯν໊ͷϑΝΠϧ͕͋Δ
    ίϛοτͷຊ໊ʢ4)"ʣ͕ॻ͔ΕͯΔ
    ͘͢͝୯७ͳϑΝΠϧ

    View Slide

  25. ΦϒδΣΫτͷผ૳
    ϦϞʔτϦϙδτϦ
    ϩʔΧϧϦϙδτϦ
    ΠϯσοΫε
    ϫʔΫπϦʔ

    View Slide

  26. ΦϒδΣΫτͷผ૳
    ϦϞʔτϦϙδτϦ
    ϩʔΧϧϦϙδτϦ
    ΠϯσοΫε
    ϫʔΫπϦʔ
    ڞ༗
    (JUIVCͱ͔

    View Slide

  27. ΦϒδΣΫτͷผ૳
    ϦϞʔτϦϙδτϦ
    ϩʔΧϧϦϙδτϦ
    ΠϯσοΫε
    ϫʔΫπϦʔ
    ࣗ෼༻
    HJU
    ڞ༗
    (JUIVCͱ͔

    View Slide

  28. ΦϒδΣΫτͷผ૳
    ϦϞʔτϦϙδτϦ
    ϩʔΧϧϦϙδτϦ
    ΠϯσοΫε
    ϫʔΫπϦʔ
    ࣗ෼༻
    HJU
    ڞ༗
    (JUIVCͱ͔
    ࡞ۀத

    View Slide

  29. ΦϒδΣΫτͷผ૳
    ϦϞʔτϦϙδτϦ
    ϩʔΧϧϦϙδτϦ
    ΠϯσοΫε
    ϫʔΫπϦʔ
    ࣗ෼༻
    HJU
    ڞ༗
    (JUIVCͱ͔
    ࡞ۀத
    ϩʔΧϧϦϙͱϫʔΫ
    πϦʔͷؒͷόοϑΝ

    View Slide

  30. ͍ΜͰͬ͘͢ʁ
    ϩʔΧϧϦϙδτϦͱϫʔΫπϦʔͷؒʹ͋Δίϛ
    οτ̍ݸ෼ͷόοϑΝ
    ίϛοτ͢Δ࣌ɺΠϯσοΫεͷ಺༰͕ه࿥͞ΕΔ
    ίϛοτ࡞੒Λศརʹ͢Δ͘͠Έ
    ϫʔΫπϦʔʹࢪͨ͠มߋͷ͏ͪɺҰ෦ΛೖΕΔʗ໭͢
    ίϛοτ͍ͨ͠ঢ়ଶΛগͣͭ͠࡞Δ
    ͖ͨͳ͍ͱ͜Ζ͸ϫʔΫπϦʔʹ࢒ͨ͠··

    View Slide

  31. ϦϞʔτϗετ
    ϦϞʔτϦϙδτϦ
    ϩʔΧϧϗετ
    ϦϞʔτϦϙδτϦͷίϐʔ
    ϩʔΧϧϦϙδτϦ
    ΠϯσοΫε
    ϫʔΫπϦʔ

    View Slide

  32. DIFDLPVU
    HJUDIFDLPVUίϛοτ
    HJUDIFDLPVUϒϥϯν
    HJUDIFDLPVUϑΝΠϧ
    HJUDIFDLPVUίϛοτϑΝΠϧ

    View Slide

  33. DIFDLPVU
    HJUDIFDLPVUίϛοτ
    HJUDIFDLPVUϒϥϯν
    HJUDIFDLPVUϑΝΠϧ
    HJUDIFDLPVUίϛοτϑΝΠϧ
    ϩʔΧϧϦϙˠϫʔΫπϦʔ

    View Slide

  34. DIFDLPVU
    HJUDIFDLPVUίϛοτ
    HJUDIFDLPVUϒϥϯν
    HJUDIFDLPVUϑΝΠϧ
    HJUDIFDLPVUίϛοτϑΝΠϧ
    ϒϥϯνҠಈ
    ϩʔΧϧϦϙˠϫʔΫπϦʔ

    View Slide

  35. DIFDLPVU
    HJUDIFDLPVUίϛοτ
    HJUDIFDLPVUϒϥϯν
    HJUDIFDLPVUϑΝΠϧ
    HJUDIFDLPVUίϛοτϑΝΠϧ
    ϒϥϯνҠಈ
    ϩʔΧϧϦϙˠϫʔΫπϦʔ
    ΠϯσοΫεˠϫʔΫπϦʔ

    View Slide

  36. DIFDLPVU
    HJUDIFDLPVUίϛοτ
    HJUDIFDLPVUϒϥϯν
    HJUDIFDLPVUϑΝΠϧ
    HJUDIFDLPVUίϛοτϑΝΠϧ
    ϒϥϯνҠಈ
    ϩʔΧϧϦϙˠϫʔΫπϦʔ
    ΠϯσοΫεˠϫʔΫπϦʔ
    ϩʔΧϧϦϙˠϫʔΫπϦʔ
    ʢࢦఆͨ͠ϑΝΠϧͷΈʣ

    View Slide

  37. DIFDLPVUC
    HJUDIFDLPVUϒϥϯν
    HJUDIFDLPVUC৽ϒϥϯνϒϥϯν·ͨ͸ίϛοτ
    ϒϥϯνΛҠಈ
    ίϛοτ
    NBTUFS
    ίϛοτ
    ίϛοτ UPQJD

    View Slide

  38. DIFDLPVUC
    HJUDIFDLPVUϒϥϯν
    HJUDIFDLPVUC৽ϒϥϯνϒϥϯν·ͨ͸ίϛοτ
    ϒϥϯνΛ࡞ͬͯҠಈ
    ϒϥϯνΛҠಈ
    ίϛοτ
    NBTUFS
    ίϛοτ
    ίϛοτ UPQJD

    View Slide

  39. DPNNJU
    HJUDPNNJU
    HJUDPNNJUB

    View Slide

  40. DPNNJU
    HJUDPNNJU
    HJUDPNNJUB
    ΠϯσοΫεˠϩʔΧϧϦϙ

    View Slide

  41. DPNNJU
    HJUDPNNJU
    HJUDPNNJUB
    ΠϯσοΫεˠϩʔΧϧϦϙ
    ϫʔΫπϦʔˠϩʔΧϧϦϙ

    View Slide

  42. BEESN
    HJUBEEϑΝΠϧ
    HJUSNϑΝΠϧ
    HJUSNDBDIFEϑΝΠϧ

    View Slide

  43. BEESN
    HJUBEEϑΝΠϧ
    HJUSNϑΝΠϧ
    HJUSNDBDIFEϑΝΠϧ
    ϫʔΫπϦʔˠΠϯσοΫε

    View Slide

  44. BEESN
    HJUBEEϑΝΠϧ
    HJUSNϑΝΠϧ
    HJUSNDBDIFEϑΝΠϧ
    ϫʔΫπϦʔͱΠϯσοΫε͔Βফ͢
    ϫʔΫπϦʔˠΠϯσοΫε

    View Slide

  45. BEESN
    HJUBEEϑΝΠϧ
    HJUSNϑΝΠϧ
    HJUSNDBDIFEϑΝΠϧ
    ϫʔΫπϦʔͱΠϯσοΫε͔Βফ͢
    ΠϯσοΫε͔Βফ͢
    ϫʔΫπϦʔˠΠϯσοΫε

    View Slide

  46. SFTFU
    HJUSFTFUTPGUίϛοτ
    HJUSFTFUίϛοτ
    HJUSFTFUIBSEίϛοτ
    ίϛοτ
    NBTUFS
    ίϛοτ
    ίϛοτ

    View Slide

  47. SFTFU
    HJUSFTFUTPGUίϛοτ
    HJUSFTFUίϛοτ
    HJUSFTFUIBSEίϛοτ
    ϒϥϯνͷઌ୺Λมߋ
    ίϛοτ
    NBTUFS
    ίϛοτ
    ίϛοτ

    View Slide

  48. SFTFU
    HJUSFTFUTPGUίϛοτ
    HJUSFTFUίϛοτ
    HJUSFTFUIBSEίϛοτ
    ϒϥϯνͷઌ୺Λมߋ
    ίϛοτ
    ίϛοτ
    ίϛοτ

    View Slide

  49. SFTFU
    HJUSFTFUTPGUίϛοτ
    HJUSFTFUίϛοτ
    HJUSFTFUIBSEίϛοτ
    ϒϥϯνͷઌ୺Λมߋ
    ίϛοτ
    ίϛοτ
    ίϛοτ NBTUFS

    View Slide

  50. SFTFU
    HJUSFTFUTPGUίϛοτ
    HJUSFTFUίϛοτ
    HJUSFTFUIBSEίϛοτ
    ϒϥϯνͷઌ୺Λมߋ
    ϩʔΧϧϦϙˠΠϯσοΫε
    ίϛοτ
    ίϛοτ
    ίϛοτ NBTUFS

    View Slide

  51. SFTFU
    HJUSFTFUTPGUίϛοτ
    HJUSFTFUίϛοτ
    HJUSFTFUIBSEίϛοτ
    ϒϥϯνͷઌ୺Λมߋ
    ϩʔΧϧϦϙˠΠϯσοΫε
    ϩʔΧϧϦϙˠϫʔΫπϦʔ
    ίϛοτ
    ίϛοτ
    ίϛοτ NBTUFS

    View Slide

  52. GFUDIQVMMQVTI
    HJUGFUDI
    HJUQVMM
    HJUQVTI

    View Slide

  53. GFUDIQVMMQVTI
    HJUGFUDI
    HJUQVMM
    HJUQVTI
    ϦϞʔτϦϙˠϦϞʔτϦϙͷίϐʔ

    View Slide

  54. GFUDIQVMMQVTI
    HJUGFUDI
    HJUQVMM
    HJUQVTI
    ϦϞʔτϦϙˠϦϞʔτϦϙͷίϐʔ
    ϦϞʔτϦϙˠϫʔΫπϦʔʹϚʔδʢʣ

    View Slide

  55. GFUDIQVMMQVTI
    HJUGFUDI
    HJUQVMM
    HJUQVTI
    ϦϞʔτϦϙˠϦϞʔτϦϙͷίϐʔ
    ϦϞʔτϦϙˠϫʔΫπϦʔʹϚʔδʢʣ
    ϩʔΧϧϦϙˠϦϞʔτϦϙ

    View Slide

  56. ·ͱΊ
    ίϛοτ΍ϒϥϯνͷ࣮ମΛ஌Δͱҙ֎ͱ୯७
    ίϚϯυΛཧղ͢Δʹ͸ΦϒδΣΫτͷҠಈʢಛʹ
    ΠϯσοΫεʣΛҙࣝ͢Δ

    View Slide

  57. Questions?
    ϒϥϯνૢ࡞ฤʢSFCBTFNFSHFDIFSSZQJDLʣ͕
    ͋ͬͨΒࢀՃ͍ͨ͠ํʁ
    ԋश෇͖൒೔ʢ౔೔ʣͷແྉίʔε͕͋ͬͨΒࢀՃ
    ͍ͨ͠ํʁ
    ࣭͝໰ͳͲ

    View Slide

  58. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    Presented by @irohiroki

    View Slide

  59. ิ଍ɿ)&"%
    ͦͷ࣌ϕʔεʹͯ͠Δίϛοτ
    HJU)&"%
    ϒϥϯν໊·ͨ͸ຊ໊ʢ4)"ʣ͕ॻ͔ΕͯΔ
    ϒϥϯνͱͷҧ͍ɿ
    ৗʹl)&"%zͱݺ͹ΕΔ
    ಛఆͷίϛοτͷ࿈ͳΓΛࢦ͞ͳ͍
    ϒϥϯνͷ్தΛࢦ͢͜ͱ΋Ͱ͖Δ

    View Slide