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

一歩進んだ Git の活用術

一歩進んだ Git の活用術

2022 年 5 月 21 日に開催された「広島フロントエンド勉強会 Vol.29 Git 勉強会」の資料

Avatar for Masaki Osugi

Masaki Osugi

May 22, 2022
Tweet

More Decks by Masaki Osugi

Other Decks in Programming

Transcript

  1. ʢ͍ΘΏΔʣࠇ͍ը໘Ͱ֬ೝͯ͠ΈΑ͏ • த਎͸͜ͷΑ͏ʹͳ͍ͬͯΔ • SFGTͷதʹ࠷৽ͷίϛοτ৘ใ͕ ه࿥͞Ε͍ͯΔྖҬ • PCKFDUT͕ (JUͷ؅ཧϑΝΠϧྖҬ •

    DPOGJH͕ϦϙδτϦͷઃఆΛอ࣋ ͍ͯ͠ΔྖҬ • ϦϞʔτͷઃఆ΍ίϛοτ͢Δਓͷ৘ใ ͳͲͷΤσΟλͰมߋͯ͠΋൓ө͞ΕΔ
  2. ϦϙδτϦͷछྨ ϩʔΧϧϦϙδτϦ • ֤ࣗͷ։ൃ؀ڥͳͲͰ༻͍ΒΕΔ΋ͷ • ݴ༿௨Γࣗ෼ͷ։ൃ؀ڥͷΈݟ͑Δ • ཤྺ؅ཧͳͲͰ͖ΔͷͰɺ޷͖ͳΑ͏ʹͰ͖Δ • ୈࡾऀ͕֬ೝͰ͖ͳ͍मਖ਼΋ؚ·ΕΔ

    • Ұ࣌తͳ࡞ۀ಺༰ͷόοΫΞοϓ • ۓٸͰ࡞ۀͨ࣌͠ͷୀආ಺༰ ϦϞʔτϦϙδτϦ • ιʔείʔυΛ؅ཧ͢Δத৺ͱͳΔ΋ͷ • جຊతʹ͸ωοτϫʔΫ্͔Βݟ͑Δ • ֎෦αʔόʹஔ͔Ε͍ͯΔ͜ͱ͕ଟ͍ • ଞͷਓ͕ίϛοτͨ͠ϒϥϯν΋֬ೝ Ͱ͖Δ • ϦϞʔτʹ൓ө͞Ε͍ͯΕ͹
  3. ϦϞʔτϨϙδτϦͷอଘઌ ΦϯϓϨϛεʢࣗ෼Ͱ؅ཧʣ • 044Ͱ഑෍͞Ε͍ͯΔιϑτ΢ΣΞΛ ར༻ͯ͠αʔόͷ؅ཧΛؚΊͯߦ͏ • ηΩϡϦςΟΛॏࢹ͢Δ৔߹ʹ͸Φεεϝ • ༗໊ͳιϑτ΢ΣΞ͸ҎԼͷ௨Γ •

    (JU)VC&OUFSQSJTF • (JU)VCͷΦϯϓϨϛε൛ʢ༗ঈ ͔ͳΓߴ͍ʣ • (JU-BC$PNNVOJUZ&OUFSQSJTF&EJUJPO • (JU-BCͷΦϯϓϨϛε൛ • (JU8FC • (JUύοέʔδʹؚ·ΕΔ $(* 4BB4αʔϏεʹอଘ • ιʔείʔυϗεςΟϯάαʔϏεʹ ϦϙδτϦΛ࡞੒ͯ͠؅ཧ͢Δํ๏ • ݸਓͰར༻ͨ͠Γ͢Δ৔߹ʹ͸े෼ • ༗໊ͳαʔϏεͱͯ͠͸ҎԼͷ௨Γ • (JU)VC • ଟ͘ͷاۀɾϢʔβ͕ར༻͍ͯ͠Δ • (JU-BC • ར༻ऀ͸૿͓͑ͯΓɺػೳ͕ଞΑΓॆ࣮͍ͯ͠Δ • "[VSF%FW0QT3FQPT • .JDSPTPGU "[VSFͱͷ਌࿨ੑ͕ߴ͍
  4. ͢΂ͯ (JU Ͱ؅ཧΛߦ͏͜ͱ͸Ͱ͖ͳ͍ • (JUʹίϛοτͯ͠͠·͏ͱୈࡾऀʹѱ༻͞Εͯ͠·͏৘ใ • ೝূ৘ใʢύεϫʔυ΍τʔΫϯɺೝূ伴ͳͲʣ • ར༻͍ͯ͠Δ 04

    ґଘͷ৘ใ • 04ʹΑͬͯ͸දࣔ͞Εͳͯ͘΋ྑ͍ϑΝΠϧ͕؅ཧ͞ΕΔ͜ͱͰ ݕࡧ΍Ұཡͷ֬ೝ͢Δͷʹखؒʹͳͬͯ͠·͏ • ίϚϯυͰੜ੒Ͱ͖Δ΋ͷ • 5ZQF4DSJQU ͰͷτϥϯεύΠϧͨ݁͠Ռ
  5. ಛ௃ᶃ ϑΥϧμ୯ҐͰ੍ޚͰ͖Δ • ҰͭͷϦϙδτϦʹରͯ͠ෳ਺ͷ छྨͷιʔείʔυ͕͋Δ৔߹ʹ ෼ׂ͢Δ͜ͱ͕Ͱ͖Δ • ଞʹ΋ɺۭϑΥϧμ͕ඞཁͳ৔߹ • ͜ͷΑ͏ͳߏ੒ͷ৔߹ʹ͸τοϓ

    ϑΥϧμʹ࠷খݶͷهࡌΛ͠Α͏ • ॏෳ࣮ͯ͠ߦ͞Εͯ͠·͏Մೳੑ • ඞཁͳϑΝΠϧ͕ίϛοτͰ͖ͳ͍ プロジェクトフォルダ server package.json Index.js index.html front
  6. ೝূ৘ใΛίϛοτ͠ͳ͍ͨΊʹ͸ ઐ༻ͷπʔϧΛ࢖͏ • ίϛοτͯ͠͠·͏ͱऔΓฦ͕͔ͭ͠ͳ͍ͷͰɺπʔϧΛ࢖ͬͯ๷͙ • 4FDSFU-JOU IUUQTHJUIVCDPNTFDSFUMJOUTFDSFUMJOU • "84 ΍

    (JU)VCͳͲͷ 4FDSFUTʹରԠ͍ͯ͠Δπʔϧ • ೝূ৘ใΛίϛοτૢ࡞Λߦ͏લʹ௨஌ͯ͘͠ΕΔ • (JU)VC"EWBODFE4FDVSJUZ • ίϛοτޙͷඃ֐Λ཈͑ΔͨΊͷπʔϧ • ೝূ৘ใ͕ 1VTI͞Εͨ͜ͱΛݕ஌͢Δͱʮೝূ伴ͷແޮԽʯ΋ߦΘΕΔʢΒ͍͠ʣ
  7. (JUͷϗεςΟϯάαʔϏεʹ͋Δ େػೳ • *TTVF • ࿨༁͢Δͱʮ՝୊ʯ • ͦͷϓϩδΣΫτͷ՝୊ͳͲΛొ࿥ͯ͠ར༻͢Δ͜ͱ͕ଟ͍ • 1VMM3FRVFTU

    • ओʹमਖ਼ͨ͠಺༰Λ࡞ۀ༻ͷϒϥϯν͔ΒϝΠϯϒϥϯνʹ దԠ͢ΔͨΊʹར༻͢Δ • ϨϏϡʔͳͲඇಉظతʹґཔ͢Δ͜ͱ΋Ͱ͖Δ
  8. ։ൃͷҰ࿈ͷྲྀΕ ϦΫΤετ ࣮૷ ϨϏϡʔ ։ൃ؀ڥ΁൓ө ʢςετʣ ϦϦʔε ʢࢦఠࣄ߲͕͋Δ৔߹ʣ ର໘Ͱͷ૬ஊɾ .-

    Ͱͷ֬ೝ 1.ͷࢦࣔ ൓өίϚϯυଧ伴 खಈͰͷίϚϯυ࣮ߦ ର໘ʢը໘ڞ༗ʣͰͷ ϨϏϡʔ
  9. *TTVFʹ͸ͲͷΑ͏ͳ͜ͱΛॻ͘ͷ͔ʁ ػೳ௥ՃϦΫΤετͷ৔߹ • ͋Δ΂͖࢟ɾഎܠ • ͦΕ͕׬੒ͨ͠৚݅ • ؀ڥతͳ΋ͷ • ຬͨ͢σʔλͷྫ

    • ӨڹൣғʢଞʹӨڹ͕͋Δ͔ʁʣ όάͷ৔߹ • ࠶ݱ৘ใ • ؀ڥ৘ใ • લఏ৚݅ʢσʔλͳͲʣ • खॱ • ͋Δ΂͖࢟ʢಈ࡞ͳͲʣ
  10. ͖֮͑Εͳ͍৔߹ • αʔϏεʹΑͬͯ͸ςϯϓϨʔτػೳ͕ଘࡏ͢ΔͷͰ׆༻͢Δ • (JU)VC΍ (JU-BCʹ͸ଘࡏ͢Δ • ൓ө͢Δ͜ͱͰड͚ΕΔϝϦοτͳͲΛΞϐʔϧ͠Α͏ • ϨϙδτϦʹ൓өͰ͖ͳ͍৔߹͸৘ใ͕ೖͬͨ

    63-Λ࡞Δ • ϝϯςφϯεੑ͸௿͍͕αʔϏεͷ࢓༷͕มΘΒͳ͍ݶΓ࢖͑Δ • ςϯϓϨʔτػೳ͕ग़Δ·Ͱ͸Α͘ར༻͞Ε͍ͯͨํ๏ • ϝϞாʹ࢒͢
  11. 1VMM3FRVFTUΛ༻͍ͨϨϏϡʔͷಛ௃ ϝϦοτ • ඇಉظతʹߦ͏͜ͱ͕Ͱ͖ɺ͔ͭ ࣌ؒʹറΒΕΔ͜ͱ͕ͳ͍ • ϨϏϡʔͨ͠ه࿥͕ίϝϯτͰ ࢒ΔͨΊɺमਖ਼࿙Ε͕গͳ͍ • ςετ͕͋Δ৔߹͸ఆٛ͞Εͨ

    ؀ڥͰಈ࡞͢Δ͔อূͰ͖Δ σϝϦοτ • จࣈͰͷ΍ΓͱΓʹͳΔͨΊɺ ਫ਼ਆతʹ΍ΒΕΔ͜ͱ΋͋Δ • मਖ਼ͷҙਤͳͲΛιʔείʔυ ͔ΒಡΈऔΔඞཁ͕͋ΔͨΊɺ ϨϏϡΞʔͷෛՙ͕ൺֱతߴΊ
  12. ͜ΕΒΛࠀ෰͢ΔͨΊʹ • ϓϧϦΫΤετΛ࡞Δͱ͖ʹ͸ߦ਺ΛؾΛ͚ͭΑ͏ • ҳൠਓͰͳ͍ݶΓ  ʙ  ߦ͕ݶք •

    ػೳతʹӨڹ͕ͳ͍मਖ਼ͳͲ͸ઌग़ͨ͠͠Γɺ޻෉Λ͠Α͏ • Θ͔Βͳ͍͜ͱ͕͋Ε͹ $BMM͢ΔͳͲ৺͕͚Α͏ • ॻ͖ํ͕෼͔Γʹ͍͘ͱ͔บ͕͋Δʢ 㲈্ڃऀ޲͚ʣͳॻ͖ํ͸ ͙͢ʹฉ͜͏ʢௐ΂Δ͚͕ͩ࣌ؒ໪ମແ͍ʣ
  13. (JUΛ࢖͍ͬͯΔਓ͕ଟ͍ 㲈 ։ൃऀ͕ଟ͍ • πʔϧΛར༻͍ͯ͠Δ։ൃऀ͕ଟ͍ͱ͍͏͜ͱ͸पΓͷαʔϏε΋ଟ͍ αʔϏεͷ෼ྨΛ͢ΔͱҎԼͷೋछྨʹ෼͔ΕΔ • $*ʢܧଓతΠϯςάϨʔγϣϯʣ • ςετͷࣗಈԽ΍ϑΥʔϚοτΤϥʔͳͲͷݕ஌Λߦ͏͜ͱ͕Ͱ͖Δ

    • $%ʢܧଓతσϓϩΠʣ • ։ൃͨ͠ιϑτ΢ΣΞͷ഑৴Λߦ͏ • ଞʹ΋։ൃதͷࣄނ๷ࢭπʔϧʢྫϚʔδϒϩοΫʣ΋͋Δ • ϚʔδϒϩοΫͷ৔߹͸ %SBGU4UBUVTͰϓϧϦΫΤετ͕࡞੒Ͱ͖Δ͕
  14. վળͰ͖Δ͜ͱɾଞʹͰ͖Δ͜ͱ ϦΫΤετ *TTVFͷ࡞੒ ࣮૷ ίʔυͷमਖ਼ ϨϏϡʔ 13ͷ࡞੒ ։ൃ؀ڥ΁൓ө ʢςετʣ ࣗಈσϓϩΠ

    ϦϦʔε ࣗಈσϓϩΠ ୯ମςετ ࣮ߦɾमਖ਼ Ϛʔδ્ࢭ ೔࣍Ͱͷ ςετ࣮ߦ ϥΠϒϥϦ 7FSVQ ࡞੒༻ͷ ςϯϓϨ ※ サービスによって対応していない内容も含まれています -JOUFS ࣮ߦ
  15. Ͳ͏ͯ͠ܧଓత˓˓͕ॏཁࢹ͞Ε͍ͯΔͷ͔ • ୯ମςετ͕͋Δ৔߹͸ࣗಈతʹςετΛ࣮ࢪ͍ͨ͠ • Ұఆͷ؀ڥͰ໰୊ͳ͍͜ͱΛอূ͍ͨ͠ • ϥΠϒϥϦͷΞοϓσʔτͳͲਖ਼ৗܥͷςετ͕Ͱ͖Δ • ୀ৬͢ΔͱϦϦʔε͕Ͱ͖ͳ͍ɺ͸க໋తʢൿ఻ͷεΫϦϓτʣ •

    πʔϧͷ৘ใͳͲ໌จԽ͞Ε͍ͯΕ͹·ͩϚγ • ͦ΋ͦ΋ 5ZQF4DSJQUͳͲ࣮ߦͰ͖ΔͨΊͷม׵͕ඞཁ • 4B44 ΍ 4$44ͳͲ΋ϒϥ΢βͰ͸ಡΊͳ͍ • 1$͸͍͔ͭյΕΔ΋ͷͰ͋Δ͠ɺੑೳ্͕͕͍ͬͯΔͷ΋ࣄ࣮
  16. αʔϏεͰରԠͰ͖ͳ͍৔߹͸ • (JU)VC "DUJPOT΍ (JU-BC$*$%ͳͲίϯϐϡʔςΟϯάαʔϏε Λར༻͢Δ • ࣗ෼ͰఆٛͰ͖Δ͕ɺ :".-ͳͲαʔϏε͝ͱʹΑͬͯҟͳΔ •

    ίʔυ؅ཧɾίϚϯυϥΠϯϕʔεͳͷͰ؀ڥΛ੔͑ΔॲཧΛؚΊͯॻ͘ඞཁ͕ ͋Δ • -JOVYͰ࣮ߦ͢Δύλʔϯ͕ଟ͍͕ɺΞϓϦͷϏϧυͳͲʹΑͬͯ͸ 8JOEPXT΍ NBD04Λར༻͢Δύλʔϯ΋͋Δ • ࣌ؒ՝ۚͳͷͰɺঢ়گʹΑͬͯ͸ଞͷαʔϏε΋࢖͏͜ͱΛݕ౼͢΂͖ • Ωϟογϡ΍ 6* ͳͲؚΊɺίετ͕ܭࢉ͠΍͍͢΋ͷΛ࢖͏ํ͕ྑ͍
  17. νʔϜ։ൃΛ͢Δ্Ͱ࢖͑Δ΋ͷ͸࢖͓͏ • खಈ؅ཧ͢ΔͱΩπ͍΋ͷʢআ֎͢ΔϑΝΠϧͳͲͷϧʔϧʣ͸ ϓϩδΣΫτ͝ͱʹઃఆΛ͋Β͔͡Ί࡞੒͓ͯ͜͠͏ ◦ ࠷ॳ͔Β͋Δ৔߹΋͋Δ͕ɺπʔϧͰ࡞Δͷ͕खͬऔΓૣ͍ • ଟ͘ͷ (JUϗεςΟϯάαʔϏεʹ *TTVF1VMM3FRVFTUT͕͋Δ

    ◦ *TTVFͰ՝୊؅ཧ͕Ͱ͖Δ ◦ 1VMM3FRVFTUTΛ༻͍ɺ࡞ۀ༻ͷϒϥϯν͔Β൓өͰ͖Δ • ϦϦʔεͳͲఆܕతͳ࡞ۀ͸ࣗಈͰ΍ΔΑ͏ʹมߋ͠Α͏ ◦ ଐਓԽͷ๷ࢭʹ΋໾ཱͯΔ͕ɺ؀ڥʹґଘ͠ͳ͍͜ͱ͕େࣄ