How people build software
! 17
“blob”ΦϒδΣΫτ
• ςΩετϑΝΠϧࠩ
• όΠφϦϑΝΠϧશσʔλ
༰ྔઅͱޮͷόϥϯε
Slide 18
Slide 18 text
How people build software
! 18
ςΩετϑΝΠϧͷࠩ֨ೲ
• PackfileͱΠϯσοΫεϑΝΠϧ
ɹ→ git gc, git push, git fetch, etc.ɹ
.pack .idx
Slide 19
Slide 19 text
How people build software
! 19
GitHubͰཧ͢ΔϑΝΠϧͷ͓͢͢Ί
• σʔλϕʔεͷμϯϓϑΝΠϧ
• ϩάϑΝΠϧ
GitHubͰཧ͢ΔͷΛਪ͠ͳ͍ͷ
• ਪϦϙδτϦαΠζ্ݶɿ1GB
• ϑΝΠϧαΠζ্ݶɿ100MB
Slide 20
Slide 20 text
How people build software
! 20
ϦϙδτϦαΠζɺϑΝΠϧͷαΠζʹدͬͯɺ
ύϑΥʔϚϯεʹӨڹΛٴ΅͢͜ͱ…
Slide 21
Slide 21 text
How people build software
! 21
ͲΜͳ͕͋ͬͯɺͲ͏ରॲ͢Ε͍͍ʁ
Slide 22
Slide 22 text
How people build software
!
ύϑΥʔϚϯεͷΛ
Ҿ͖ى͜͢έʔε
22
!
Slide 23
Slide 23 text
How people build software
! 23
1ͭͷσΟϨΫτϦʹେྔͷϑΝΠϧ͕͋Δ߹
Slide 24
Slide 24 text
How people build software
! 24
”tree”ΦϒδΣΫτɿσΟϨΫτϦͷใ
“dir_a”σΟϨΫτϦͷதʹɺ”file_a”ͱ”file_b”͕͋Δ
file_a file_b
tree
blob blob
Slide 25
Slide 25 text
How people build software
! 25
”tree”ΦϒδΣΫτͷੜ
• ৽͘͠σΟϨΫτϦΛ࡞ͨ͠ͱ͖
• σΟϨΫτϦԼͷϑΝΠϧ͕มߋ͞Εͨͱ͖
”tree”ΦϒδΣΫτɿσΟϨΫτϦͷใ
Slide 26
Slide 26 text
How people build software
! 26
file_aΛมߋͯ͠ΈΔ
“dir_a”σΟϨΫτϦ
tree: “42b7fbs”
tree: “48c3474”
Slide 27
Slide 27 text
How people build software
! 27
tree: “48c3474”
tree: “42b7fbs”
σΟϨΫτϦͷதʹϑΝΠϧ͕େྔʹଘࡏ͢Δͱ
ͦͷσΟϨΫτϦԼͷϑΝΠϧ͕มߋ͞ΕΔͨͼʹɺ
େྔͳϑΝΠϧͷใ͕֨ೲ͞ΕͨtreeΦϒδΣΫτ͕࡞ΒΕΔ
Slide 28
Slide 28 text
How people build software
! 28
git pushgit fetchͳͲͷλΠϛϯάͰ
2ͭͷΦϒδΣΫτͷڞ௨෦Λݟ͚ͭͯPackϑΝΠϧΛ
ੜ͢Δ(IOϝϞϦͷফඅ)
git fetchgit push͕͘ͳΔ
Slide 29
Slide 29 text
How people build software
! 29
αϒσΟϨΫτϦΛ࡞ͬͯϑΝΠϧΛ͚Α͏
Slide 30
Slide 30 text
How people build software
! 30
େ͖ͳςΩετϑΝΠϧ͕͋Δ߹
Slide 31
Slide 31 text
How people build software
! 31
8fd1403 acbd4fb
ྫɿେ͖ͳςΩετϑΝΠϧAΛ1ߦ͚ͩมߋ͢Δ
1ߦՃ େ͖ͳΦϒδΣΫτ͕
2ͭͰ͖Δ
git pushgit fetchͳͲͷλΠϛϯάͰ
2ͭͷΦϒδΣΫτͷڞ௨෦Λݟ͚ͭͯPackϑΝΠϧΛ
ੜ͢Δ(IOϝϞϦͷফඅ)
git fetchgit push͕͘ͳΔ
Slide 32
Slide 32 text
How people build software
! 32
όΠφϦϑΝΠϧͱͯ͠औΓѻ͏Α͏ʹ͢Δ
“core.bigFileThreshold”ͷΛௐ
(σϑΥϧτ 512MB)
.gitattribute
Slide 33
Slide 33 text
How people build software
! 33
େ͖ͳόΠφϦϑΝΠϧ͕͋Δ߹
Slide 34
Slide 34 text
How people build software
! 34
όΠφϦϑΝΠϧɺશͯͷσʔλΛอ࣋͢ΔͨΊɺ
ϦϙδτϦࣗମͷαΠζ͕େ͖͘ͳͬͯ͠·͏
GitHubࣗମͷύϑΥʔϚϯεʹӨڹ!ʂ
ಛʹΦϯϓϨ൛ͷGitHub Enterprise Server
git clone͕͘ͳΔ
େ͖ͳόΠφϦϑΝΠϧ
Slide 35
Slide 35 text
How people build software
! 35
Git LFSΛͬͯɺେ͖ͳόΠφϦϑΝΠϧ
ϦϙδτϦͷ֎ʹஔ͜͏
https://github.com/git-lfs/git-lfs
Slide 36
Slide 36 text
How people build software
! 36
Git LFS
όΠφϦϑΝΠϧผͷॴʹอଘͯ͠ɺ
ΘΓʹϙΠϯλϑΝΠϧΛόʔδϣϯཧ͢ΔΈ
খ͞ͳςΩετϑΝΠϧ
ϙΠϯλϑΝΠϧ
Slide 37
Slide 37 text
How people build software
! 37
Git LFSͰϑΝΠϧΛτϥοΩϯά
͢Ͱʹίϛοτ͞Ε͍ͯΔϑΝΠϧΛLFSͰτϥοΩϯά
ͪΐͬ͜ͱίϚϯυհ
Slide 38
Slide 38 text
How people build software
! 38
͕͋Γͦ͏ͳϑΝΠϧͷݟ͚ͭํ
Slide 39
Slide 39 text
How people build software
! 39
git lfs migrate info
Slide 40
Slide 40 text
How people build software
! 40
git-sizer
https://github.com/github/git-sizer