2018.12.11にTEQSで開催した「これからはじめる非エンジニアのための開発環境構築 Git/GitHubによるソースコード管理編」で使用したスライドです。スライドに書いていなけど、当日話したことが多いのであまり役にはたたないかもしれませんが。
͜Ε͔Β͡ΊΔඇΤϯδχΞͷͨΊͷ։ൃڥߏஙGit/GitHubʹΑΔιʔείʔυཧฤ
View Slide
ຊͷ༰ɾιϑτΣΞ։ൃͷྲྀΕɾ։ൃڥͷཧํ๏ʹ͍ͭͯɾGit/GitHubʹ͍ͭͯɾGitHubϋϯζΦϯɾ࣭ٙԠ
ιϑτΣΞ։ൃͷྲྀΕ{ } > xlsxdocx mdઃఆใ։ൃπʔϧʢ౷߹։ൃڥɺΤσΟλɺपลπʔϧʣιʔείʔυ ը૾ υΩϡϝϯτ1.ઃܭ2.࣮ɾςετઃܭΛݩʹ࣮υΩϡϝϯτʹϑΟʔυόοΫ3.ϦϦʔεpptx4.αϙʔτɾΞοϓσʔτ
։ൃڥΛཧ͢ΔతϦϦʔεͨ͠ ࣮ߦܗࣜ͘͠αʔϏεͱ ಉ͡ͷΛ࠶ݱՄೳʹ͢Δ
ROMσʔλ͔Βιʔείʔυ෮ݩͨ͢͠Δʁ
։ൃϓϩηεͰ࡞͢Δσʔλ{ } >xlsxdocxmdιʔείʔυΞΠίϯσʔλɺը૾ͳͲઃఆใυΩϡϝϯτʢςΩετܗࣜʣυΩϡϝϯτʢOfficeจॻͳͲʣpptx
νʔϜ։ൃͰͷϙΠϯτ{ } >xlsxdocx mdpptx{ } >xlsxdocx mdpptx࡞ۀͪखΓΛൃੜͤͣ͞ʹ࡞ۀΛਐΊΔڞ༗
ϑΝΠϧͷछྨʹΑͬͯڞ༗ํ๏Λ͍͚Δ{ } >xlsxdocxmdιʔείʔυΞΠίϯσʔλɺը૾ͳͲઃఆใυΩϡϝϯτʢςΩετܗࣜʣυΩϡϝϯτʢOfficeจॻͳͲʣpptxڞ༗αʔόʔ
GitͷಛςΩετϑΝΠϧΛߦ୯ҐͰཧͰ͖Δ →ಉ͡ϑΝΠϧΛผʑʹߋ৽ͨ͠߹Ͱɺ ɹޙͰ݁߹ʢϚʔδʣ͕ՄೳϑΝΠϧ୯ҐͱϓϩδΣΫτ୯Ґͷ ྆ํͷཤྺ͕ཧͰ͖Δ →ҙͷ࣌ʢόʔδϣϯʣͷ ɹϓϩδΣΫτͷঢ়ଶΛऔΓग़ͤΔɻ
Git͕͍͍ͯͳ͍༻్ɾόΠφϦϑΝΠϧͷཧ ɹˠͨͩ͠ɺϓϩδΣΫτͷը૾GitͰཧ ɾେ༰ྔͷϑΝΠϧͷཧ ɹˠಈըϑΝΠϧͳͲ
Officeจॻڞ༗ϑΥϧμͰɾGitͰͷࠩཧ͕Ͱ͖ͳ͍ ɹˠख࡞ۀʹΑΔϚʔδ͕ඞཁɻɾଞͷਓ͕։͍͍ͯΔ͔Ͳ͏͔͕Θ͔Δɻ ɹˠಉ࣌ʹมߋ͢Δ͜ͱ͕͛Δɻ ͜ΕΒͷϑΝΠϧڞ༗ϑΥϧμͰͷ ڞ༗ͷํ͕ޮ͕ྑ͍ɻ
Markdownʹ͍ͭͯɾςΩετ͚ͩͰɺจॻߏΛهड़Ͱ͖Δهड़ํࣜɾςΩετ͚ͩͰهड़Ͱ͖ΔͨΊɺΩʔϘʔυૢ࡞͚ͩͰ ɹॻࣜΛઃఆͰ͖ɺ׳ΕΔͱจॻ࡞͕͘ͳΔɻɾςΩετܗࣜͳͷͰGit/GitHubͰͷཤྺཧ͕ՄೳɻɾαʔϏεʹΑ༷ͬͯʹҧ͍͕͋Δɻ
ϑΝΠϧͷछྨʹΑͬͯڞ༗ํ๏Λ͍͚Δ{ } >xlsxdocx pptx{ } > mdmdڞ༗ϑΥϧμGit Git
Git ʹ͍ͭͯ
GitͱιʔείʔυΛؚΉ։ൃڥͷߋ৽ཤྺΛཧ͢Δ ΦʔϓϯιʔεͷγεςϜɺແྉͰར༻ՄೳɻLinuxͷ։ൃऀͰ͋ΔϦʔφεɾτʔόϧࢯ͕։ൃɻෳͷόʔδϣϯɺաڈͷཤྺΛͯ͢ཧͰ͖ɺ ඞཁͳ࣌ظͷ։ൃڥΛ͍ͭͰऔΓग़͢͜ͱ͕Ͱ͖ΔɻςΩετϑΝΠϧͰ͋Εɺมߋ༰ʹΑͬͯࠩΛࣗಈతʹϚʔδͰ͖Δɻ
ͨͱ͑͜Μͳ࣌ɾͱͯ͠ver.1.0ΛϦϦʔεɾݱࡏόʔδϣϯΞοϓ൛Λ։ൃதɾࢢͰෆ۩߹͕ݟ͔ͭͬͨͷͰɺ ɹࢸٸରࡦ͕ඞཁʂ
։ൃ൛ͱผʹରࡦ൛͕ඞཁʹͳͬͨʂreleasenexttaisakuϦϦʔε൛։ൃ్த൛ఆରԠ൛ϓϩδΣΫτͷίϐʔΛ࡞ͯ͠όʔδϣϯΞοϓ։ൃϓϩδΣΫτͷίϐʔΛ࡞ͯ͠ରࡦ൛Λ࡞ϦϦʔεରࡦ༰Λ։ൃ൛ʹө͠ͳ͚ΕͳΒͳ͍
GitΛ͏ͱ͜Ε͕؆୯ʹͳΔɾϓϩδΣΫτϑΥϧμͷίϐʔ͕؆୯ʹͰ͖ΔɻɾϓϩδΣΫτϑΥϧμͷΓସ͕͑ίϚϯυҰൃͰͰ͖Δɻɾมߋ༰ΛࣗಈͰϚʔδͰ͖Δ ɹˠ༰ʹΑͬͯਓؒͷख࡞ۀ͕ඞཁɻ
Gitͷ༻ޠ༻ޠ ҙຯϦϙδτϦ ϓϩδΣΫτΛཧ͢ΔͨΊͷೖΕϒϥϯνbranchϓϩδΣΫτϑΥϧμͷίϐʔΛ࡞ͬͨΓɺΓସ͑Δૢ࡞ίϛοτcommitϦϙδτϦʹมߋ༰Λొ͢Δૢ࡞ϓογϡpushϩʔΧϧʢࣗͷPCʣͷϦϙδτϦΛαʔόʔ্ͷϦϙδτϦʹొ͢Δૢ࡞Ϋϩʔϯcloneαʔόʔ্ͷϦϙδτϦ͔ΒϩʔΧϧʹίϐʔΛ࡞Δૢ࡞
GitͷσʔλͷྲྀΕϓϩδΣΫτϑΥϧμίϛοτ (commit)ϓογϡ (push)ϩʔΧϧϦϙδτϦʢPCʣϦϞʔτϦϙδτϦʢαʔόʔʣϒϥϯν (branch)
GitHubʹ͍ͭͯ
GitHubͱɾGitͷϦϞʔτϦϙδτϦΛఏڙ͢ΔαʔϏεɻɾެ։ϦϙδτϦͷΈͰ͋Εແྉɻ ɹඇެ։ϦϙδτϦΛ͏߹༗ྉɻ ɹˠ̍ਓͳΒ$7/݄ɻνʔϜͷ߹ਓʹΑͬͯҟͳΔɻɾσʔλཧҎ֎ʹɺλεΫཧɺόάཧͷΈఏڙɾWebαΠτͷ࡞ͱެ։Մೳɻɾެ։ϦϙδτϦͯ͢ͷσʔλ͕ӾཡՄೳͰ͋Δ͜ͱʹҙ
GitHubϋϯζΦϯ
ϋϯζΦϯͷखॱ1. GitHub DesktopͷμϯϩʔυͱΠϯετʔϧ2. GitHubΞΧϯτͷ࡞3. GitHub Desktopͷઃఆ4. ϦϙδτϦ࡞5. ϦϙδτϦͷΫϩʔϯ6. ϑΝΠϧͷՃͱίϛοτ7. ϦϞʔτϦϙδτϦͷϓογϡ8. ϒϥϯνͷ࡞ͱΓସ͑9. มߋ༰ͷϚʔδ
1. GitHub DesktopͷμϯϩʔυͱΠϯετʔϧ1. ҎԼͷURLʹΞΫηεͯ͠ɺදࣔ͞ΕΔμϯϩʔυ ɹϘλϯΛԡͯ͠”GitHub Desktop”Λμϯϩʔυ https://desktop.github.com/2. μϯϩʔυͨ͠ϑΝΠϧ͔ΒΠϯετʔϧΛ࣮ߦɻ Windowsͷ߹ →μϯϩʔυͨ͠”GitHubDesktopSetup.exe”ΛμϒϧΫϦοΫͯ͠ ࣮ߦ͠ɺදࣔ͞ΕΔखॱʹैͬͯΠϯετʔϧɻ Macͷ߹ →μϯϩʔυͨ͠”GitHubDesktop.zip”ΛμϒϧΫϦοΫͯ͠ల։ɻల։ޙͷ”GitHub Desktop.app”ΛΞϓϦέʔγϣϯϑΥϧμʹҠಈɻ
2. GitHubΞΧϯτͷ࡞(1/4)https://github.com/ ʹΞΫηε͠ɺදࣔ͞Εͨը໘Ͱ Ϣʔβʔ໊ɺϝʔϧΞυϨεɺύεϫʔυΛೖྗ
2. GitHubΞΧϯτͷ࡞(2/4)৫ΞΧϯτΛ࡞ΔͲ͏͔ͷ֬ೝɻݸਓΞΧϯτͰ͋ΕνΣοΫΦϑGitHub͔ΒͷϝϧϚΨૹ৴Մ൱ ෆՄͰ͋ΕνΣοΫΦϑϓϥϯͷબ༗ྉϓϥϯͳΒඇެ։ϦϙδτϦͷ࡞͕Մೳ
2. GitHubΞΧϯτͷ࡞(3/4)ϓϩάϥϛϯάͷܦݧΛೖྗࠨ͕Ұ൪ܦݧ͕ߴ͍GitHubͷ༻త͋ͳͨࣗͷଐੑɻಇ͍͍ͯΔɺֶੜɺϗϏʔΠετɺͦͷଞSubmitͰྃ
2. GitHubΞΧϯτͷ࡞(4/4)ɾొ࣌ͷϝʔϧΞυϨεͰҎԼͷϝʔϧ͕ड৴͞Ε͍ͯΔͷΛ ɹ֬ೝ͢Δɻɾϝʔϧຊจʹදࣔ͞Ε͍ͯΔҎԼͷϘλϯΛબ͢ΔɻҎ্ͰɺGitHubΞΧϯτͷ࡞ྃͰ͢ɻ ඞͣϝʔϧͷ֬ೝ·ͰΛߦͳ͍ͬͯͩ͘͞ɻ
3. GitHub Desktopͷઃఆ1. GitHub.comͷํͷ"Sign in”Λબ2. Ϣʔβʔ໊ʢ͘͠ϝʔϧΞυϨεʣͱ ύεϫʔυΛೖྗͯ͠”Sign in”Λબ3. ొ࣌ͷϝʔϧΞυϨεʹૹΒΕ͍ͯΔҎԼͷϝʔϧͷɺຊจͷϦϯΫΛΫϦοΫ͢ΔɻҎ্ͰɺGitHub DesktopͷઃఆྃͰ͢ɻ ඞͣϝʔϧͷ֬ೝ·ͰΛߦͳ͍ͬͯͩ͘͞ɻ
4. ϦϙδτϦ࡞1. ӈ্ͷ”+”ϝχϡʔ͔ΒʮNew repositoryʯΛબɻ
4. ϦϙδτϦ࡞1.ඞཁࣄ߲ΛೖྗΛೖྗͯ͠ʮCreate repositoryʯΛબɻϦϙδτϦ໊ʢҰൠతʹϓϩδΣΫτ໊ʣPublicʢެ։ʣ͔Privateʢඇެ։ʣΛબREADMEΛ࡞͢ΔʹνΣοΫΛೖΕΔ
5. ϦϙδτϦͷΫϩʔϯ1.ϦϙδτϦͷը໘͔ΒʮClone or downloadʯϘλϯΛԡ͠ʮOpen in DesktopʯΛબ͠·͢ɻɹ
5. ϦϙδτϦͷΫϩʔϯ1.ϦϙδτϦͷը໘͔ΒʮClone or downloadʯϘλϯΛԡ͠ ʮOpen in DesktopʯΛબ͠·͢ɻɹ2.ϦϙδτϦͷอଘઌΛબͯ͠ʮCloneʯΛબ
6. ϑΝΠϧͷՃͱίϛοτ1.ϦϙδτϦͷอଘઌͱͯ͠ࢦఆͨ͠ϑΥϧμʹɺϑΝΠϧΛίϐʔ͠·͢ɻ2.GitHub DesktopʹՃ͞ΕͨϑΝΠϧ͕ҎԼͷΑ͏ʹදࣔ͞Ε·͢ͷͰɺ มߋ༰ͷઆ໌Λهೖͯ͠ɺ”Commit to master”Λબ͢Δͱɺมߋ༰͕อଘ͞Ε·͢ɻ
7. ϦϞʔτϦϙδτϦͷϓογϡίϛοτૢ࡞Λͨ͠ޙͷGitHub DesktopʹҎԼͷද͕ࣔ͋Γ·͢ɻ͜ΕɺϩʔΧϧϦϙδτϦʹϓογϡ͍ͯ͠ͳ͍ίϛοτ͕1ͭ͋Δ͜ͱΛ ද͍ͯ͠·͢ɻ ͜ͷදࣔࣗମ͕Ϙλϯʹͳ͍ͬͯ·͢ͷͰɺ͜͜Λબ͢ΔͱϩʔΧϧͷมߋ༰͕ ϦϞʔτʹૹΒΕɺϩʔΧϧͱϦϞʔτͷ༰͕ಉ͡ʹͳΓ·͢ɻ
8. ϒϥϯνͷ࡞ͱΓସ͑(1/4)GitHub Desktopͷը໘্෦ͷʮCurrent BranchʯΛΫϦοΫ͢ΔͱϒϥϯνͷҰཡ͕දࣔ͞Ε·͢ɻݱࡏʮmasterʯ͔͋͠Γ·ͤΜɻ৽͍͠ɺ։ൃ༻ϒϥϯνͷ໊લͱͯ͠ʮdevʯΛೖྗͯ͠ʮCreate New BranchʯΛબ͠·͢ɻݱࡏͷϒϥϯν͕ʮdevʯʹมΘΓ·ͨ͠ɻ
8. ϒϥϯνͷ࡞ͱΓସ͑(2/4)ʮcount10.htmlʯͷλΠτϧͷ෦Λʮαϯϓϧʯ͔ΒʮΧϯτμϯʯʹมߋ͠·͢ɻมߋ͞ΕͨϑΝΠϧͱͯ͠ʮcount10.htmlʯ͕දࣔ͞Εɺมߋ༰͕දࣔ͞Ε·͢ɻ GitͰߦ୯ҐͰ৭ͷߦ͕আ͞Εͨߦɺ৭ͷߦ͕Ճ͞Εͨߦͱͯ͠දࣔ͞Ε·͢ɻมߋ༰ͷίϝϯτΛೖྗͯ͠ίϛοτ͠·͢ɻ
8. ϒϥϯνͷ࡞ͱΓସ͑(3/4)ϒϥϯνϝχϡʔ͔ΒʮmasterʯΛબͯ͠ϒϥϯνΛʮmasterʯʹ͠·͢ɻ͏Ұʮcount10.htmlʯΛΤσΟλͰ։͍ͯΈ͍ͯͩ͘͞ɻ λΠτϧ͕มߋલͷʮαϯϓϧʯʹ͍ͬͯΔ͜ͱ͕Θ͔Γ·͢ɻ͜ΕɺGit͕ʮmasterʯͱʮdevʯͱ͍͏2ͭͷϑΥϧμΛΓସ͍͑ͯΔ͔ΒͰɺ ઌ΄Ͳͷมߋʮdevʯͷํʹө͞Ε͍ͯ·͢ɻ
8. ϒϥϯνͷ࡞ͱΓସ͑(4/4)GitΛͬͨγεςϜͰɺPC্ͷϑΥϧμGit͕ཧ͢ΔϑΥϧμΛݟΔͨΊͷ૭Ͱ͔͠ͳ͘ɺͲͷϑΥϧμͷ༰Λදࣔ͢Δ͔GitͷʮbranchʯίϚϯυͰΓସ͑ΒΕ·͢ɻmaster devPC্ͷ࣮ࡍͷϑΥϧμbranchͰΓସ͑PCͷϑΥϧμGitͷதΛݟΔͨΊͷ૭
9. มߋ༰ͷϚʔδ(1/3)࠷ޙʹʮdevʯͰมߋͨ͠λΠτϧͷมߋΛʮmasterʯʹө͠·͢ʢϚʔδʣɻ өઌͷʮmasterʯϒϥϯν͕બ͞Εͨঢ়ଶʹ͠·͢ɻʮBranchʯϝχϡʔ͔ΒʮMerge Into Current Branch…ʯΛબ͠·͢ɻ
9. มߋ༰ͷϚʔδ(2/3)өݩΛબ͢Δը໘ʹͳΓ·͢ͷͰʮdevʯΛબ͠·͢ɻ ʮdevʯΛબ͢Δͱө͢Δίϛοτ͕1ͭ͋Δ͜ͱ͕දࣔ͞Ε·͢ͷͰɺ ʮMerge dev into masterʯΛબ͠·͢ɻ
9. มߋ༰ͷϚʔδ(3/3)ʮcount10.htmlʯΛ։͍ͯɺλΠτϧͷมߋ͕ө͞Ε͍ͯΔ͜ͱΛ֬ೝ͍ͯͩ͘͠͞ɻ GitHub DesktopͷʮHistoryʯΛΫϦοΫͯ͠ɺλΠτϧͷมߋ͕มߋཤྺʹ ೖ͍ͬͯΔ͜ͱΛ֬ೝ͠·͢ɻ
ಛఆͷϑΝΠϧΛڞ༗ର֎ʹ͢ΔແࢹϑΝΠϧʮ.gitignoreʯΛ͏ͱࢦఆͨ͠ϑΝΠϧΛ ڞ༗ର͔Β֎ͤ·͢ɻ ྫʣ ɾϓϩάϥϜΛϏϧυͨ࣌͠ͷόΠφϦϑΝΠϧ ɹதؒϑΝΠϧɻ ɾ༻͍ͯ͠ΔPCͷυϥΠϒ໊ϑΥϧμ໊͕ҟͳΔͳͲ ɹ։ൃڥ͕ϝϯόʔʹΑͬͯҟͳΔ߹ͷઃఆϑΝΠϧ ɹˠઃఆϑΝΠϧͷϑΝΠϧ໊ʹʮ.tmplʯͳͲΛ͚ͭͯ ɹɹςϯϓϨʔτϑΝΠϧͱͯ͠ڞ༗͢Δɻ
Git/GitHubΛ͏্ͰؾΛ͚ͭΔ͜ͱɾίϛοτͰ͖Δ͚ͩখ͍͞୯ҐͰߦ͏͜ͱɻ ɹˠཤྺ͕ৄࡉʹཧͰ͖·͢ɻɾԿ͔࡞ۀΛ࢝ΊΔ࣌໘ͰϒϥϯνΛ࡞Δɻ ɹˠϒϥϯνΛ࡞Δɺมߋ͢Δɺ֬ೝ͢ΔɺϚʔδ ɹɹ͜Ε͕Git/GitHubΛͬͨ։ൃͷجຊͰ͢ɻ ɹɹϒϥϯνΛ࡞͓͚ͬͯ߄ͯΔ͜ͱ͋Γ·ͤΜɻɾͻͱΓͰ։ൃ͢Δ࣌ͰGitΛ͏ ɹˠ։ൃཤྺ͕͋Δ͜ͱͷ͋Γ͕ͨ͞ɺԿ͔͕ ɹɹىͬͨ࣌͜ʹΘ͔Γ·͢ʢসʣɻ
ࠓͷৼΓฦΓ
࣭ٙԠ
https://github.com/kwaka1208/project1211