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

Woman Tech Terrace 2019

pnsk
June 15, 2019

Woman Tech Terrace 2019

pnsk

June 15, 2019
Tweet

More Decks by pnsk

Other Decks in Technology

Transcript

  1. How people build software
    !
    "
    ޮՌతͳGitϦϙδτϦར༻ͷखҾ͖
    @pnsk

    View Slide

  2. How people build software
    !
    Introduction
    2
    !
    Junko Suzuki
    Enterprise Support Engineer
    @ pnsk

    View Slide

  3. How people build software
    !
    GitHub
    3
    !

    View Slide

  4. How people build software
    ! 4

    View Slide

  5. How people build software
    ! 5
    ίϛϡχέʔγϣϯ͸ΦϯϥΠϯ͕جຊ
    νϟοτ ϏσΦνϟοτ
    GitHub

    View Slide

  6. How people build software
    ! 6
    ఆظతʹΦϑϥΠϯͰू·Δػձ΋͋Δ

    View Slide

  7. How people build software
    ! 7
    https://github.com

    View Slide

  8. How people build software
    ! 8

    View Slide

  9. How people build software
    !
    Enterprise Support Engineer
    9
    !

    View Slide

  10. How people build software
    ! 10
    Enterpriseϓϥϯ

    View Slide

  11. How people build software
    ! 11
    GitHub Enterprise Serverɹ: ΦϯϓϨϛε൛
    GitHub Enterprise Cloudɹ : SaaS൛
    GitHub Enterprise
    ΤϯυϢʔβ͔Β͸GitHub.comͱಉ͡
    ؅ཧ໘͸Businessར༻ʹয఺

    View Slide

  12. How people build software
    ! 12
    GitHub EnterpriseͷςΫχΧϧαϙʔτΛ
    ͍ͯ͠Δͷ͕Enterprise Support Engineer

    View Slide

  13. How people build software
    ! 13
    • ΞδΞ
    • Ϥʔϩού
    • ΞϝϦΧ
    λΠϜκʔϯʹ෼͔ΕͯνʔϜ͕ߏ੒͞Ε͍ͯΔ

    View Slide

  14. How people build software
    !
    ޮ཰తͳGitϦϙδτϦར༻
    ͷखҾ͖
    14
    !

    View Slide

  15. How people build software
    ! 15
    GitϦϙδτϦ
    ༷ʑͳछྨͷϑΝΠϧΛόʔδϣϯ؅ཧͰ͖Δ
    .txt
    .rb
    .sql
    .png
    .gif

    View Slide

  16. How people build software
    ! 16
    GitΦϒδΣΫτ
    • “blob”: ϑΝΠϧͷ಺༰
    • “tree” : σΟϨΫτϦͷ৘ใ
    • “commit” : ίϛοτͷ৘ใ
    • “tag” : λά৘ใ
    ѹॖͯ͠อଘ

    View Slide

  17. How people build software
    ! 17
    “blob”ΦϒδΣΫτ
    • ςΩετϑΝΠϧ͸ࠩ෼
    • όΠφϦϑΝΠϧ͸શσʔλ
    ༰ྔઅ໿ͱޮ཰ͷόϥϯε

    View Slide

  18. How people build software
    ! 18
    ςΩετϑΝΠϧͷࠩ෼֨ೲ
    • PackfileͱΠϯσοΫεϑΝΠϧ
    ɹ→ git gc, git push, git fetch, etc.ɹ
    .pack .idx

    View Slide

  19. How people build software
    ! 19
    GitHubͰ؅ཧ͢ΔϑΝΠϧͷ͓͢͢Ί
    • σʔλϕʔεͷμϯϓϑΝΠϧ
    • ϩάϑΝΠϧ
    GitHubͰ؅ཧ͢ΔͷΛਪ঑͠ͳ͍΋ͷ
    • ਪ঑ϦϙδτϦαΠζ্ݶɿ1GB
    • ϑΝΠϧαΠζ্ݶɿ100MB

    View Slide

  20. How people build software
    ! 20
    ϦϙδτϦαΠζ΍ɺϑΝΠϧͷαΠζʹدͬͯ͸ɺ
    ύϑΥʔϚϯεʹӨڹΛٴ΅͢͜ͱ΋…

    View Slide

  21. How people build software
    ! 21
    ͲΜͳ໰୊͕͋ͬͯɺͲ͏ରॲ͢Ε͹͍͍ʁ

    View Slide

  22. How people build software
    !
    ύϑΥʔϚϯεͷ໰୊Λ
    Ҿ͖ى͜͢έʔε
    22
    !

    View Slide

  23. How people build software
    ! 23
    1ͭͷσΟϨΫτϦʹେྔͷϑΝΠϧ͕͋Δ৔߹

    View Slide

  24. How people build software
    ! 24
    ”tree”ΦϒδΣΫτɿσΟϨΫτϦͷ৘ใ
    “dir_a”σΟϨΫτϦͷதʹɺ”file_a”ͱ”file_b”͕͋Δ
    file_a file_b
    tree
    blob blob

    View Slide

  25. How people build software
    ! 25
    ”tree”ΦϒδΣΫτͷੜ੒
    • ৽͘͠σΟϨΫτϦΛ࡞੒ͨ͠ͱ͖
    • σΟϨΫτϦ഑ԼͷϑΝΠϧ͕มߋ͞Εͨͱ͖
    ”tree”ΦϒδΣΫτɿσΟϨΫτϦͷ৘ใ

    View Slide

  26. How people build software
    ! 26
    file_aΛมߋͯ͠ΈΔ
    “dir_a”σΟϨΫτϦ
    tree: “42b7fbs”
    tree: “48c3474”

    View Slide

  27. How people build software
    ! 27
    tree: “48c3474”
    tree: “42b7fbs”
    σΟϨΫτϦͷதʹϑΝΠϧ͕େྔʹଘࡏ͢Δͱ
    ͦͷσΟϨΫτϦ഑ԼͷϑΝΠϧ͕มߋ͞ΕΔͨͼʹɺ
    େྔͳϑΝΠϧͷ৘ใ͕֨ೲ͞ΕͨtreeΦϒδΣΫτ͕࡞ΒΕΔ

    View Slide

  28. How people build software
    ! 28
    git push΍git fetchͳͲͷλΠϛϯάͰ
    2ͭͷΦϒδΣΫτͷڞ௨෦෼Λݟ͚ͭͯPackϑΝΠϧΛ
    ੜ੒͢Δ(IO΍ϝϞϦͷফඅ)
    git fetch΍git push͕஗͘ͳΔ

    View Slide

  29. How people build software
    ! 29
    αϒσΟϨΫτϦΛ࡞ͬͯϑΝΠϧΛ෼͚Α͏

    View Slide

  30. How people build software
    ! 30
    େ͖ͳςΩετϑΝΠϧ͕͋Δ৔߹

    View Slide

  31. How people build software
    ! 31
    8fd1403 acbd4fb
    ྫɿେ͖ͳςΩετϑΝΠϧAΛ1ߦ͚ͩมߋ͢Δ
    1ߦ௥Ճ େ͖ͳΦϒδΣΫτ͕
    2ͭͰ͖Δ
    git push΍git fetchͳͲͷλΠϛϯάͰ
    2ͭͷΦϒδΣΫτͷڞ௨෦෼Λݟ͚ͭͯPackϑΝΠϧΛ
    ੜ੒͢Δ(IO΍ϝϞϦͷফඅ)
    git fetch΍git push͕஗͘ͳΔ

    View Slide

  32. How people build software
    ! 32
    όΠφϦϑΝΠϧͱͯ͠औΓѻ͏Α͏ʹ͢Δ
    “core.bigFileThreshold”ͷ஋Λௐ੔
    (σϑΥϧτ 512MB)
    .gitattribute

    View Slide

  33. How people build software
    ! 33
    େ͖ͳόΠφϦϑΝΠϧ͕͋Δ৔߹

    View Slide

  34. How people build software
    ! 34
    όΠφϦϑΝΠϧ͸ɺશͯͷσʔλΛอ࣋͢ΔͨΊɺ
    ϦϙδτϦࣗମͷαΠζ͕େ͖͘ͳͬͯ͠·͏
    GitHubࣗମͷύϑΥʔϚϯεʹ΋Өڹ!ʂ
    ಛʹΦϯϓϨ൛ͷGitHub Enterprise Server
    git clone͕஗͘ͳΔ
    େ͖ͳόΠφϦϑΝΠϧ

    View Slide

  35. How people build software
    ! 35
    Git LFSΛ࢖ͬͯɺେ͖ͳόΠφϦϑΝΠϧ͸
    ϦϙδτϦͷ֎ʹஔ͜͏
    https://github.com/git-lfs/git-lfs

    View Slide

  36. How people build software
    ! 36
    Git LFS
    όΠφϦϑΝΠϧ͸ผͷ৔ॴʹอଘͯ͠ɺ
    ୅ΘΓʹϙΠϯλϑΝΠϧΛόʔδϣϯ؅ཧ͢Δ࢓૊Έ
    খ͞ͳςΩετϑΝΠϧ
    ϙΠϯλϑΝΠϧ

    View Slide

  37. How people build software
    ! 37
    Git LFSͰϑΝΠϧΛτϥοΩϯά
    ͢Ͱʹίϛοτ͞Ε͍ͯΔϑΝΠϧΛLFSͰτϥοΩϯά
    ͪΐͬ͜ͱίϚϯυ঺հ

    View Slide

  38. How people build software
    ! 38
    ໰୊͕͋Γͦ͏ͳϑΝΠϧͷݟ͚ͭํ

    View Slide

  39. How people build software
    ! 39
    git lfs migrate info

    View Slide

  40. How people build software
    ! 40
    git-sizer
    https://github.com/github/git-sizer

    View Slide

  41. How people build software
    ! 41

    View Slide