Held at UEC
Gitߨश2014.04.15
View Slide
͜ΜΜ
ߨࢣ հ• masawada• ใཧֶ෦ ใɾ௨৴ֶՊ 3 ίϯϐϡʔλαΠΤϯείʔε• Θ͔Βͳ͍͜ͱ͕͋Ε [email protected]·ͨ @masawada (Twitter) ·Ͱ
ຊͷ͓͠ͳ͕͖• Gitͱ• جຊతͳίϚϯυ / ߟ͑ํ• GitͷதΛΈͯΈΑ͏
ߨशΛߦ͏ʹ͋ͨͬͯ• ࣮ࡍʹίϚϯυΛଧͪͳ͕Βઆ໌͠·͢ɻ• Մೳͳํ͓खݩͷͰ͓ࢼ͍ͩ͘͠͞ɻ• ࢿྉWebαΠτʹΞοϓϩʔυ͞Ε͍ͯ·͢ɻ
Gitͱ
GitͱόʔδϣϯཧγεςϜ (VCS) = มߋཤྺΛه / ཧ͢ΔιϑτΣΞ!ଞʹSubversionBazzarͳͲ…
ྫ͑• ϨϙʔτϓϩάϥϜΛॻ͍͍ͯͯ ۠Γͷྑ͍ͱ͜ΖͰอଘ͓͖͍ͯͨ͠• ·ͱʹॻ͚͍ͯΔ / ಈ͍͍ͯΔঢ়ଶͷͷΛ อଘ͓͍ͯ͠ɺ͕ൃੜͨ͠ͱ͖ʹ ͤΔΑ͏ʹ͍ͨ͠
͍··Ͱͷมߋཤྺཧ
ϑΝΠϧϕʔε
Excelϕʔε
खಈͰมߋཤྺΛཧ͢ΔͷͰਓҝతͳϛε͕ଟ͘ͳΔ͜ΕΒΛͯࣗ͢ಈԽ͍ͨ͠
ͱ͍͏ߟ͑ͷͱੜ·Εͨͷ͕όʔδϣϯཧγεςϜ
ɾҰ࣍ޙظͷجૅϓϩάϥϛϯά͓Αͼԋश→ Cݴޠͷॻ͖ํΛֶͿ→ มߋཤྺΛཧ͢Δඞཁ͕͋·Γͳ͍!!ɾຊϫʔΫγϣοϓ→ ಈ͘ϞϊΛ࡞Δ→ มߋཤྺΛཧ͢Δඞཁ͕͋Δ
جૅฤ
جૅฤ• ϦϙδτϦ (repository)• ίϛοτ (commit)
ϦϙδτϦͱσʔλͷมߋཤྺΛཧ͢ΔாͷΑ͏ͳͷ
ίϛοτͱϦϙδτϦʹରͯ͠มߋཤྺΛՃ͢Δ͜ͱ
ίϛοτ࡞ͷྲྀΕ1. ϫʔΫπϦʔͰϑΝΠϧΛՃ/มߋ/আ͢Δ2. ͋Δఔ·ͱ·ͬͨΒΠϯσοΫεʹՃ͢Δ ΠϯσοΫεͱɺػೳ͝ͱͳͲʹ͚ͯίϛοτΛ ࡞ΔͨΊʹมߋͨ͠ϑΝΠϧΛཷΊΔॴ ΠϯσοΫεʹొ͞Ε͍ͯͳ͍ϑΝΠϧίϛοτ͞Εͳ͍3. ΠϯσοΫεͷ༰ΛϦϙδτϦʹίϛοτ͢Δ
ϦϙδτϦͱίϛοτϫʔΫπϦʔ ΠϯσοΫε ϦϙδτϦ(࡞ۀσΟϨΫτϦ)
ϦϙδτϦͷॳظԽ$ git init
ΠϯσοΫεʹมߋΛొ$ git add [filename]$ git add .
ίϛοτͷ࡞$ git commit$ git commit -m “message”
ϑΝΠϧͷঢ়ଶΛදࣔ$ git status
มߋཤྺͷදࣔ$ git log
͜͜·ͰΛσϞ
ࠩͷදࣔ$ git diff [old] [new]
ϒϥϯνฤ
ϒϥϯνͱࢬ
ϒϥϯνͱࢧ෦, ࢧہ
ϒϥϯνͱ• ෳͷػೳΛಉ࣌ʹฒߦͯ͠࡞Ͱ͖Δ• νʔϜ։ൃΛ͢Δͱ͖ʹϒϥϯνΛ࡞Δ͜ͱͰ ଞਓͷมߋʹ໎Λ͔͚ͳ͍Α͏࡞ۀͰ͖Δ• ෆ҆ͳ࡞ۀϒϥϯνΛ࡞͔ͬͯΒߦ͏͜ͱͰ ϒϥϯνΛফ͚ͩ͢Ͱݩͷঢ়ଶʹΕΔ
ϒϥϯνͱ
ϒϥϯνͷ࡞$ git branch [name]
ϒϥϯνͷΓ͑$ git checkout [name]
ϒϥϯνͷ࡞ͱΓ͑$ git checkout -b [name]
ϒϥϯνͷ౷߹$ git merge [name]
ϒϥϯνͷআ$ git branch -d [name]$ git branch -D [name]merge͞Ε͍ͯͳ͍ϒϥϯν-DͰফ͢
ϒϥϯνͷڝ߹
ϒϥϯνͷڝ߹1. master͔Βfeature_1, feature_2ϒϥϯνΛ࡞2. feature_1ϒϥϯνʹػೳΛՃɺίϛοτ͢Δ3. feature_1ϒϥϯνΛmasterϒϥϯνʹmerge4. feature_2ϒϥϯνʹػೳΛՃɺίϛοτ͢Δ5. feature_2ϒϥϯνΛmasterϒϥϯνʹmerge
ϒϥϯνͷڝ߹masterfeature_1feature_2
࣮ࡍʹσϞ
ϦϞʔτϦϙδτϦ
ϦϞʔτϦϙδτϦ• ϦϙδτϦΛαʔόʹόοΫΞοϓ• ϦϙδτϦΛଞਓͱڞ༗Ͱ͖Δ
GitϦϙδτϦϗεςΟϯάαʔϏε
ϦϞʔτϦϙδτϦͷొ$ git remote add [name] [url]
ϦϞʔτϦϙδτϦͷऔಘ$ git clone [url]
ϦϞʔτϦϙδτϦͷߋ৽$ git push$ git push -u [name] [branch]
ϩʔΧϧϦϙδτϦͷߋ৽$ git pull
ίϛοτͷऔΓফ͠/Γ͠
લͷίϛοτͷΓͳ͓͠$ git commit --amendͻͱͭ·͑ͷίϛοτΛΓͳ͓͢
ΠϯσοΫεՃͷऔΓফ͠$ git resetΠϯσοΫεʹՃͨ͠ϑΝΠϧͷϦετΛΠϯσοΫε͔ΒऔΓআ͘
ίϛοτͷআ$ git reset --hard [commit]ࢦఆͨ͠ίϛοτ·ͰΔࢦఆίϛοτ͔Βݱࡏ·ͰͷίϛοτΒͳ͍
ίϛοτͷআ$ git reset --soft [commit]ࢦఆͨ͠ίϛοτ·ͰΔϫʔΫπϦʔͷมߋཤྺΔ
ίϛοτͷଧͪফ͠$ git revert [commit]ࢦఆͨ͠ίϛοτΛଧͪফ͢ίϛοτΛ࡞͢ΔͦͷίϛοτͰՃͨ͠෦Λͬͦ͝Γআ͢Δ
ͦͷଞͷTips
.gitignore.DS_Store.swpͳͲͷ͍Βͳ͍ϑΝΠϧΛՃ͠ͳ͍Α͏ʹͰ͖Δ
࠷ޙʹ
·ͩ·ͩػೳͨ͘͞Μ͋Δ
͋Γ͕ͱ͏͍͟͝·ͨ͠