https://wtt.cyberagent.group/ https://cyberagent.connpass.com/event/124932/
How people build software!"ޮՌతͳGitϦϙδτϦར༻ͷखҾ͖@pnsk
View Slide
How people build software!Introduction2!Junko SuzukiEnterprise Support Engineer@ pnsk
How people build software!GitHub3!
How people build software! 4
How people build software! 5ίϛϡχέʔγϣϯΦϯϥΠϯ͕جຊνϟοτ ϏσΦνϟοτGitHub
How people build software! 6ఆظతʹΦϑϥΠϯͰू·Δػձ͋Δ
How people build software! 7https://github.com
How people build software! 8
How people build software!Enterprise Support Engineer9!
How people build software! 10Enterpriseϓϥϯ
How people build software! 11GitHub Enterprise Serverɹ: ΦϯϓϨϛε൛GitHub Enterprise Cloudɹ : SaaS൛GitHub EnterpriseΤϯυϢʔβ͔ΒGitHub.comͱಉ͡ཧ໘Businessར༻ʹয
How people build software! 12GitHub EnterpriseͷςΫχΧϧαϙʔτΛ͍ͯ͠Δͷ͕Enterprise Support Engineer
How people build software! 13• ΞδΞ• Ϥʔϩού• ΞϝϦΧλΠϜκʔϯʹ͔ΕͯνʔϜ͕ߏ͞Ε͍ͯΔ
How people build software!ޮతͳGitϦϙδτϦར༻ͷखҾ͖14!
How people build software! 15GitϦϙδτϦ༷ʑͳछྨͷϑΝΠϧΛόʔδϣϯཧͰ͖Δ.txt.rb.sql.png.gif
How people build software! 16GitΦϒδΣΫτ• “blob”: ϑΝΠϧͷ༰• “tree” : σΟϨΫτϦͷใ• “commit” : ίϛοτͷใ• “tag” : λάใѹॖͯ͠อଘ
How people build software! 17“blob”ΦϒδΣΫτ• ςΩετϑΝΠϧࠩ• όΠφϦϑΝΠϧશσʔλ༰ྔઅͱޮͷόϥϯε
How people build software! 18ςΩετϑΝΠϧͷࠩ֨ೲ• PackfileͱΠϯσοΫεϑΝΠϧɹ→ git gc, git push, git fetch, etc.ɹ.pack .idx
How people build software! 19GitHubͰཧ͢ΔϑΝΠϧͷ͓͢͢Ί• σʔλϕʔεͷμϯϓϑΝΠϧ• ϩάϑΝΠϧGitHubͰཧ͢ΔͷΛਪ͠ͳ͍ͷ• ਪϦϙδτϦαΠζ্ݶɿ1GB• ϑΝΠϧαΠζ্ݶɿ100MB
How people build software! 20ϦϙδτϦαΠζɺϑΝΠϧͷαΠζʹدͬͯɺύϑΥʔϚϯεʹӨڹΛٴ΅͢͜ͱ…
How people build software! 21ͲΜͳ͕͋ͬͯɺͲ͏ରॲ͢Ε͍͍ʁ
How people build software!ύϑΥʔϚϯεͷΛҾ͖ى͜͢έʔε22!
How people build software! 231ͭͷσΟϨΫτϦʹେྔͷϑΝΠϧ͕͋Δ߹
How people build software! 24”tree”ΦϒδΣΫτɿσΟϨΫτϦͷใ“dir_a”σΟϨΫτϦͷதʹɺ”file_a”ͱ”file_b”͕͋Δfile_a file_btreeblob blob
How people build software! 25”tree”ΦϒδΣΫτͷੜ• ৽͘͠σΟϨΫτϦΛ࡞ͨ͠ͱ͖• σΟϨΫτϦԼͷϑΝΠϧ͕มߋ͞Εͨͱ͖”tree”ΦϒδΣΫτɿσΟϨΫτϦͷใ
How people build software! 26file_aΛมߋͯ͠ΈΔ“dir_a”σΟϨΫτϦtree: “42b7fbs”tree: “48c3474”
How people build software! 27tree: “48c3474”tree: “42b7fbs”σΟϨΫτϦͷதʹϑΝΠϧ͕େྔʹଘࡏ͢ΔͱͦͷσΟϨΫτϦԼͷϑΝΠϧ͕มߋ͞ΕΔͨͼʹɺେྔͳϑΝΠϧͷใ͕֨ೲ͞ΕͨtreeΦϒδΣΫτ͕࡞ΒΕΔ
How people build software! 28git pushgit fetchͳͲͷλΠϛϯάͰ2ͭͷΦϒδΣΫτͷڞ௨෦Λݟ͚ͭͯPackϑΝΠϧΛੜ͢Δ(IOϝϞϦͷফඅ)git fetchgit push͕͘ͳΔ
How people build software! 29αϒσΟϨΫτϦΛ࡞ͬͯϑΝΠϧΛ͚Α͏
How people build software! 30େ͖ͳςΩετϑΝΠϧ͕͋Δ߹
How people build software! 318fd1403 acbd4fbྫɿେ͖ͳςΩετϑΝΠϧAΛ1ߦ͚ͩมߋ͢Δ1ߦՃ େ͖ͳΦϒδΣΫτ͕2ͭͰ͖Δgit pushgit fetchͳͲͷλΠϛϯάͰ2ͭͷΦϒδΣΫτͷڞ௨෦Λݟ͚ͭͯPackϑΝΠϧΛੜ͢Δ(IOϝϞϦͷফඅ)git fetchgit push͕͘ͳΔ
How people build software! 32όΠφϦϑΝΠϧͱͯ͠औΓѻ͏Α͏ʹ͢Δ“core.bigFileThreshold”ͷΛௐ(σϑΥϧτ 512MB).gitattribute
How people build software! 33େ͖ͳόΠφϦϑΝΠϧ͕͋Δ߹
How people build software! 34όΠφϦϑΝΠϧɺશͯͷσʔλΛอ࣋͢ΔͨΊɺϦϙδτϦࣗମͷαΠζ͕େ͖͘ͳͬͯ͠·͏GitHubࣗମͷύϑΥʔϚϯεʹӨڹ!ʂಛʹΦϯϓϨ൛ͷGitHub Enterprise Servergit clone͕͘ͳΔେ͖ͳόΠφϦϑΝΠϧ
How people build software! 35Git LFSΛͬͯɺେ͖ͳόΠφϦϑΝΠϧϦϙδτϦͷ֎ʹஔ͜͏https://github.com/git-lfs/git-lfs
How people build software! 36Git LFSόΠφϦϑΝΠϧผͷॴʹอଘͯ͠ɺΘΓʹϙΠϯλϑΝΠϧΛόʔδϣϯཧ͢ΔΈখ͞ͳςΩετϑΝΠϧϙΠϯλϑΝΠϧ
How people build software! 37Git LFSͰϑΝΠϧΛτϥοΩϯά͢Ͱʹίϛοτ͞Ε͍ͯΔϑΝΠϧΛLFSͰτϥοΩϯάͪΐͬ͜ͱίϚϯυհ
How people build software! 38͕͋Γͦ͏ͳϑΝΠϧͷݟ͚ͭํ
How people build software! 39git lfs migrate info
How people build software! 40git-sizerhttps://github.com/github/git-sizer
How people build software! 41