Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Crocos, Inc. Sotaro Karasawa @sotarok http://facebook.com/sotarok PHP Conference Tokyo 2012 / Sep 15, 2012 Git x Pull Request νʔϜ։ൃ࠷ऴԞٛ
Slide 2
Slide 2 text
Git
Slide 3
Slide 3 text
CTO @ Crocos, Inc. Ethna git-daily ύʔϑΣΫτPHP ࣗݾհ Sotaro Karasawa / @sotarok ฑ૱ଠ 1985/09/15 ੜ·Ε
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
Crocos, Inc (Ϋϩίε) FacebookΛத৺ʹιʔγϟϧάϥϑΛར༻͠ ͨΞϓϦέʔγϣϯ։ൃ ઃཱ 2011/2 2012/8 ~ Yahoo! JAPAN http://crocos.co.jp/ http://www.facebook.com/Crocos.Inc
Slide 6
Slide 6 text
Git Λͬͨ։ൃ
Slide 7
Slide 7 text
Git Ҡߦ ʹ͍ͭͯߟ͑Δ
Slide 8
Slide 8 text
svn up git pull
Slide 9
Slide 9 text
svn ci git push
Slide 10
Slide 10 text
Ͱͳ͍ʂ
Slide 11
Slide 11 text
Gitʹ Ҡߦ͢Δ ͱ
Slide 12
Slide 12 text
Git ʹҠߦ͢Δͱɺ ͋Δ͍ Git Λͬͯ։ൃΛ͢Δ͜ͱ svn ʹରԠ͢ΔίϚϯυΛ֮͑Δ͜ͱͰ ͳ͘ɺ Git Λ࠷େݶ׆༻Ͱ͖Δ։ൃϑϩʔΛߟ ͑ɺνʔϜ։ൃʹద༻͢Δ͜ͱͰ͋Δ
Slide 13
Slide 13 text
Git Λ࠷େݶ׆༻Ͱ͖Δ։ൃϑϩʔͱʁ
Slide 14
Slide 14 text
ɾϩʔΧϧͰؾܰʹίϛοτ ɾϩʔΧϧͰؾܰʹϒϥϯνΛΔ ɾݡ͘ɺߴͳϚʔδ Git Λ࠷େݶ׆༻Ͱ͖Δ։ൃϑϩʔͱʁ
Slide 15
Slide 15 text
ɾϩʔΧϧͰؾܰʹίϛοτ ɾϩʔΧϧͰؾܰʹϒϥϯνΛΔ ɾݡ͘ɺߴͳϚʔδ Git Λ࠷େݶ׆༻Ͱ͖Δ։ൃϑϩʔͱʁ ͜ΕΛੜ͔ͨ͠ϒϥϯνઓུ
Slide 16
Slide 16 text
Git ͷϒϥϯνઓུ
Slide 17
Slide 17 text
ͲͷΑ͏ʹϒϥϯνΛΓɺ ɾʑͷ։ൃ ɾϦϦʔε ɾۓٸରԠ ͳͲΛ͜ͳ͔͢ ϒϥϯνઓུͬͯʁ
Slide 18
Slide 18 text
Git ϒϥϯνઓུͷ ϕετϓϥΫςΟεͷͻͱͭ A Successful Git Branching Model http://nvie.com/posts/a-successful-git-branching- model/ ຊޠ༁ http://keijinsonyaban.blogspot.jp/2010/10/ successful-git-branching-model.html
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
master develop release feature hotfix
Slide 21
Slide 21 text
master ৗʹɺ࠷৽ͷ҆ఆͨ͠ ιʔείʔυ͕खʹೖΔ (ϦϦʔε͞Εͨίʔυ)
Slide 22
Slide 22 text
develop ʑͷ։ൃΛߦ͏ merge
Slide 23
Slide 23 text
release ϦϦʔεલͷ ֬ೝΛߦ͏ ඞཁ͕͋Ε मਖ਼͢Δ release/1.0.2 ྫ:
Slide 24
Slide 24 text
release ϦϦʔεલ࠷ऴ֬ೝ
Slide 25
Slide 25 text
release ෆ۩߹ൃݟ मਖ਼ίϛοτ
Slide 26
Slide 26 text
release ϦϦʔεϓϩηεʹೖͬ ͯɺ։ൃΛܧଓͰ͖Δ
Slide 27
Slide 27 text
release मਖ਼ྃɺ͠ ͨιʔεΛ masterʹmerge
Slide 28
Slide 28 text
release मਖ਼ͨ݁͠ՌΛ developʹө
Slide 29
Slide 29 text
feature ෳͷҟͳΔ ػೳΛฏߦͯ͠ ։ൃΛਐΊΔ
Slide 30
Slide 30 text
feature ͨ͠Β developʹmerge feature/hoge
Slide 31
Slide 31 text
feature ಉ࣌ʹ͍ͭ͘Ͱฏ ߦͯ͠࡞ۀͰ͖Δ feature/hoge feature/fuga
Slide 32
Slide 32 text
hotfix develop ͷ Λͨͣʹ master ͷ मਖ਼͕͍ͨ͠ʂ
Slide 33
Slide 33 text
hotfix
Slide 34
Slide 34 text
hotfix master͔Β ϒϥϯνΛͬ ͯमਖ਼
Slide 35
Slide 35 text
hotfix मਖ਼͕ऴΘͬͨΒ masterʹϚʔδ͠ ͯϦϦʔε
Slide 36
Slide 36 text
hotfix વมߋ༰ developʹө
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
Git ͷͨΊʹɺΑ͘ߟ͑ΒΕͨ ϒϥϯνӡ༻Ϟσϧ ༷ʑͳӡ༻ํ๏ʹɺॊೈʹରԠՄೳ A Successful Git Branching Model
Slide 39
Slide 39 text
gitflow nvieࢯۘɻ git-daily ࡞ɻ WebαʔϏε։ൃ͚ʹΞϨϯδ A Successful Git Branching Model Λ࣮ݱ͢Δπʔϧ
Slide 40
Slide 40 text
͚ͩͲ... ඞͣ͜ͷ௨ΓΒͳ͚Ε͍͚ͳ͍͜ͱ ͳ͍ ͜ΕΛࢀߟʹɺࣗͷνʔϜͰͷӡ༻ϑ ϩʔʹ߹͏Α͏ʹΞϨϯδ A Successful Git Branching Model ϒϥϯνӡ༻ϞσϧͷϕετϓϥΫςΟε
Slide 41
Slide 41 text
ɾසൟʹϦϦʔε͞ΕΔWebαʔϏε ɾ͍͍ͪͪόʔδϣϯ൪߸͚ͭͳ͍ ɾ͍͍ͪͪλάΛ͚ͭͳ͍ ɾͰϦϦʔεϒϥϯν ɾϦϞʔτ࿈ܞ(νʔϜӡ༻)Λߟྀ ɾPHP $ pear install openpear/git_daily git-daily ΞϨϯδ ... ͨͱ͑
Slide 42
Slide 42 text
Pull Request Λͬͨ։ൃϑϩʔ
Slide 43
Slide 43 text
Pull Request ͱ ɾGitHub ͱ͔ʹ͋Δͭ A ͕ॻ͍ͨίʔυʹରͯ͠ ... Bʮ͜Μͳػೳ͕ཉ͍͔͠Β͜ΜͳมߋΛ ॻ͍ͯΈͨΑɻͱΓ͜ΜͰʂʯ AʮOKɺpull ͠·͢ʯ Έ͍ͨͳͭ
Slide 44
Slide 44 text
Pull Request ͷԿ͕ྑ͍͔ ʮPull Requestʯ Φʔϓϯιʔεʹݶ Βͣ͑Δ༏Εͨ։ൃϑϩʔͩ http://d.hatena.ne.jp/sotarok/20120219/1329581585 खલຯḩͰ͕͢ɺ ੋඇಡΜͰ͍ͩ͘͞ʂ
Slide 45
Slide 45 text
ίʔυͷมߋ ෳਓͰ։ൃ͢ΔͷͰ͋Εɺ ʮଞਓ͕ॻ͍ͨίʔυʯ Λมߋ͠ͳ͚Ε͍͚ͳ͍λΠϛϯά͕ ඞͣ͋Δ
Slide 46
Slide 46 text
(1) ґཔλΠϓ
Slide 47
Slide 47 text
(2) શ૿৩λΠϓ
Slide 48
Slide 48 text
(3) উखʹมߋλΠϓ
Slide 49
Slide 49 text
(4) Pull Request λΠϓ
Slide 50
Slide 50 text
ϒϥϯνઓུʹ Pull Request Λ ΈࠐΉ
Slide 51
Slide 51 text
feature/hoge feature/fuga
Slide 52
Slide 52 text
feature/hoge feature/fuga mergeલʹ pull request ϨϏϡʔ mergeલʹ pullrequest ͰϨϏϡʔ
Slide 53
Slide 53 text
ࡉԽ͞Εͨ ɹɹίʔυϨϏϡʔ
Slide 54
Slide 54 text
ޮՌత
Slide 55
Slide 55 text
Pull Request Ϛʔδ࣌ͷ ϨϏϡʔͳͥޮՌత͔ ɾมߋͷίϯςΩετ͕໌֬ વɺਖ਼͘͠ feature ϒϥϯν͕ӡ༻͞Ε͍ͯΔ͜ ͱલఏͱͳΔɻܒ׆ಈඞཁɻ ɾখ͞ͳpatch ϨϏϡʔ͢Δରͷίʔυখ͚͞Εখ͍͞΄ ͲɺϨϏϡʔίετԼ͕Δ
Slide 56
Slide 56 text
Pull Request ͷԿ͕ྑ͍͔ (·ͱΊ) ɾύονͷΓͱΓ͕ՄࢹԽ͞ΕɺΦʔ ϓϯͰɺهΔ ɾ ֘ͷίʔυͷΛ࣋ͭਓ͕͍Δ ɾมߋ͞ΕΔίʔυΛݩʹ͕ٞͰ͖Δ ɾখ͞ͳpatchͰ࣭ͷߴ͍ϨϏϡʔ ɾϦϑΝΫλ
Slide 57
Slide 57 text
Pull Request Λఏڙ͢ΔγεςϜ ɾGitHub (༗ྉͰprivateϦϙδτϦ) ඇਪɻprivate ϦϙδτϦɺEnterprise ΑΓ͍҆ ͚Ͳ ... མͪͯΔͱϦϦʔεͰ͖ͳ͍ΑͶ ɾGitHub Enterprise ͓͕ۚ͋ΔͳΒΦεεϝɻ ɾGitLab ແྉɻϝϯςେมɻMerge Requestɻଟগόάͬ ͯෆຬΛݴΘͳ͍ খنͳνʔϜͳΒΦεεϝɻ
Slide 58
Slide 58 text
Pull Request Λఏڙ͢ΔγεςϜ GHE GitLab Ձ֨ $21/user/݄ ແྉ ϝϯςφϯείετ ͍ (ແ Ͱͳ͍) ߴ͍ Repository Viewer ˕ ˕ Network Chart ˕ ˕ User Namespace / Fork ˕ × Pull Request ˕ ˕ Auto Merge (Web͔Β) ˕ ˕
Slide 59
Slide 59 text
Pull Request Λఏڙ͢ΔγεςϜ GHE GitLab Ձ֨ $21/user/݄ ແྉ ϝϯςφϯείετ ͍ (ແ Ͱͳ͍) ߴ͍ Repository Viewer ˕ ˕ Network Chart ˕ ˕ User Namespace / Fork ˕ × Pull Request ˕ ˕ Auto Merge (Web͔Β) ˕ ˕ EJGGϏϡʔ มߋϑΝΠϧϦετɾEJGGϏϡʔ ίϝϯτ ߦίϝϯτ 8FCΠϯλʔϑΣΠε͔ΒͷࣗಈϚʔδ ϚʔδޙࣗಈΫϩʔζ
Slide 60
Slide 60 text
GitLab
Slide 61
Slide 61 text
ΫϩίεͰͷࣄྫ
Slide 62
Slide 62 text
GitLab ಋೖ & Pull Request ඞਢʹ ɾجຊతʹ feature ϒϥϯνΛͭ͘Δ ʢ͜ΕͦΕҎલ͔ΒͰ͖͍ͯͨʣ ɾ2ਓ1 (1ਓͱϦʔμʔͱܾΊΔ) ͰνʔϜΛ࡞Γɺඞ ͣνʔϜϨϏϡʔΛ͢Δ ɾϦʔμʔಉ࢜ޓ͍ʹϨϏϡʔ
Slide 63
Slide 63 text
ଟஈ feature ϒϥϯν feature/hoge ϨϏϡʔίετͷ૿େ ɾ͓͓͖ͳϒϥϯν ɾͰ͖ΔݶΓɺϒϥϯνେ͖͘͠ͳ͍ ɹʢޙड़ʣ ɾ͚ͩͲɺେ͖͘ͳͬͯ͠·͏߹͕͋ Δ →ϨϏϡʔίετͷ૿େɾϙΠϯτ͕ζ ϨΔ → Pull Request ҙຯͳ͍
Slide 64
Slide 64 text
ଟஈ feature ϒϥϯν feature/hoge feature/hoge-admin feature/hoge-batch mergeલʹ pull request ϨϏϡʔ mergeલʹ pull request ϨϏϡʔ
Slide 65
Slide 65 text
݁Ռ
Slide 66
Slide 66 text
ࣗͷ୲Ҏ֎ͷ ෦ͷ࣮ɾ༷ͷ Ѳ͕Ͱ͖ΔΑ͏ʹͳΔ େࣄͳ͜ͱ͔ͩΒ͏
Slide 67
Slide 67 text
͓ޓ͍ʹɺͩΕ͕ Ͳ͏͍͏ίʔυΛ ॻ͘ͷ͔ΛΘ͔Δ Α͏ʹͳΔ େࣄͳ͜ͱ͔ͩΒ͏
Slide 68
Slide 68 text
ίϐϖݩ͝ͱ ᓲ໓͢Δػձ͕Ͱ͖ͨ
Slide 69
Slide 69 text
͏·͍͘͘ίπ
Slide 70
Slide 70 text
1. Ͱ͖Δ͚ͩࡉ͔͘ϦϦʔε
Slide 71
Slide 71 text
2. খ͞ΊͷνʔϜʹׂ͢Δ
Slide 72
Slide 72 text
࠷ޙʹ
Slide 73
Slide 73 text
GitΛ͔ͭͬͨνʔϜ։ൃ ɾʮSVNΛஔ͖͑ΔʯͰͳ͍ ɾ։ൃϑϩʔ͔Βߏங͢͠ ɾͥͻ Pull Request ϕʔεͷ։ൃΛ ɾେ͖ͳձࣾͰɺখ͞ͳϓϩδΣΫτ͔Β Ҡߦͯ͠ܒ͍ͯ͘͠ͳͲɺਐΊํʹ͕ ඞཁ
Slide 74
Slide 74 text
ਖ਼ղͳ͍ ɾࣄྫ͋͘·Ͱࣄྫ ɾ৫ʹ͋ͬͨΓ͔ͨΛݟ͚ͭΑ͏ʂ ɾ͖ͬ͞ͷ@halt͞Μͷͱ͔ʂ ɾΠέͯͳ͍ͱ͜ΖͲΜͲΜվળ ɾ։ൃϑϩʔ/ۀϑϩʔৗʹݟ͢ ɾͥͻɺϊϋͷڞ༗͠·͠ΐ͏ʂ
Slide 75
Slide 75 text
࠷ޙʹ... ΤϯδχΞืू͍ͯ͠·͢ʂʂ ָ͍͠Αʂʂ ࣭͝ʁ strk.jp/w ʢ←ʂ