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

バージョン管理システムの概要と使い方

macneko-ayu
November 09, 2017

 バージョン管理システムの概要と使い方

2017/10/21に開催された「【DTPの勉強会 第26回】DTPスクリプト・プロフェッショナルの思考や管理の中身をみてみよう」に登壇させていただいたときの資料です。

macneko-ayu

November 09, 2017
Tweet

More Decks by macneko-ayu

Other Decks in Technology

Transcript

  1. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ όʔδϣϯ؅ཧγεςϜͷ֓ཁͱ ࢖͍ํ ԣా޹࣍࿠

  2. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ ࣗݾ঺հ ໊લɿԣా޹࣍࿠ 4/4ɿ!NBDOFLP@BZVʢ͜͏ͪΌΜࠇೣ·ΈΕʣ ॴଐɿגࣜձࣾROPUF ݱ৬ɿՈͰ͸Ϩϊ͘Μͷ෕ͪΌΜͱͯ͠ɺ ɹɹɹձࣾͰ͸ඖͷೣࣾһͷੈ࿩܎ͱͯ͠ɺ ɹɹɹ೔ʑೣ༷ʹ͖͜࢖ΘΕ͍ͯΔεϚϗΞϓϦ։ൃऀ લ৬ɿ%51ਐߦ؅ཧ݉ΦϖϨʔλʔ݉εΫϦϓτ։ൃऀ

  3. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ ࣗݾ঺հ • εΫϦϓτྺ͸೥ऑ͘Β͍ • 1$ͷதͷࣗ෼ͷॻ͍ͨεΫϦϓτΛݕࡧͨ͠ ‣ &YUFOE4DSJQU͸ɺݸ͙Β͍ ‣

    "QQMF4DSJQU͸ɺݸ͙Β͍ • εΫϦϓτ͸ॻ͖ࣺͯΔ͜ͱ͕ଟ͍ͷͰɺ ߦํෆ໌ͳ΋ͷ͕ଟ਺
  4. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ • ͝ΜΕͷϥϘ ‣ J04ɺ"OESPJEɺ "EPCFܥιϑτͷࣗಈԽεΫϦϓτͳͲͷ ϝϞ݉༻ϒϩά ‣ IUUQXXXNBDOFLPDPN

    ϒϩά঺հ
  5. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ • %51FSͷεΫϦϓτ΋͘΋͘ձ ‣ εΫϦϓτΛॻ͍ͯΔਓɺॻ͖͍ͨͱࢥ͍ͬͯΔਓ͕ ू·ͬͯɺษڧͰ͖Δ৔ɻࢀՃऀಉ࢜Ͱڭ͑͋ͬͨΓɺ ٞ࿦ͨ͠Γɺ΋͘΋ͨ͘͠ΓɺΘ͍Θ͍͢Δ৔ॴ ‣ ִ݄։࠵ɺ࣍ճ։࠵͸ʢ౔ʣ

    ‣ IUUQTEUQNLNLDPOOQBTTDPN ‣ ࢀՃऀืूதʂ ओ࠵͍ͯ͠Δ΋͘΋͘ձ
  6. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ όʔδϣϯ؅ཧɺͯ͠·͔͢ʁ • ຊηογϣϯͰ͸ɺϑΝΠϧͷมߋཤྺΛ؅ཧͯ͠ɺ ಛఆͷόʔδϣϯʹ໭͢͜ͱΛՄೳʹ͢Δ͜ͱΛ όʔδϣϯ؅ཧͱ͢Δ • %51Ͱྫ͑Δͱɺ޻ఔ͝ͱʹ൛΍ߍਖ਼༻ࢴΛ؅ཧ͠ɺ ͳʹ͔͋ͬͨͱ͖ʹલ޻ఔͷঢ়ଶΛ֬ೝͰ͖ΔΑ͏ʹ

    อͭ͜ͱ
  7. ͝ΜΕͷϥϘ • ਎ۙͳόʔδϣϯ؅ཧख๏ ‣ ϑΝΠϧΛίϐʔͯ͠ϑΝΠϧ໊Λม͑ͯ؅ཧ͢Δ ‣ ϑΝΠϧΛผͷσΟϨΫτϦʹίϐʔͯ͠؅ཧ͢Δ ‣ αʔόʹ͋ΔϑΝΠϧΛϩʔΧϧʹίϐʔͯ͠؅ཧ͢Δ •

    อଘ͢Δ৔ॴΛϑΝΠϧ໊ͷҰ෦ͱͯ͠ߟ͑Δͱɺ ϑΝΠϧ໊Λมߋͯ͠όʔδϣϯ؅ཧΛ͍ͯ͠Δ ͝ΜΕͷϥϘ ϑΝΠϧ໊όʔδϣϯ؅ཧ
  8. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ ϑΝΠϧ໊όʔδϣϯ؅ཧͷ ໰୊఺ • ࣮ࡍʹӡ༻͢Δͱ໰୊͕ى͖΍͍͢͜ͱʹؾͮ͘ ϑΝΠϧ໊Λ෇͚ؒҧ͑ͯ͠·ͬͨ ʢ࿈൪ҧ͍ɺ೔෇ҧ͍ͳͲʣ ϑΝΠϧΛίϐʔͨ͠৔ॴΛ๨Εͯ͠·ͬͨ ϑΝΠϧͷίϐʔ࣌ʹޡͬͯաڈͷϑΝΠϧʹ্ॻ͖

    ͯ͠͠·ͬͨ • ࣅͨΑ͏ͳܦݧΛ͓࣋ͪͷํ͸ଟ͍͸ͣ
  9. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ ͳͥ໰୊͕ى͖΍͍͢ͷ͔ • ݪҼ͸ͭ͋Δ ؅ཧ͢ΔϑΝΠϧͦͷ΋ͷΛૢ࡞ͯ͠ όʔδϣϯ؅ཧΛߦ͍ͬͯΔ ཤྺͷ؅ཧΛਓؒͷهԱʹཔ͍ͬͯΔ • ໰୊Λղܾ͢Δํ๏ͱͯ͠ɺ

    όʔδϣϯ؅ཧγεςϜͷಋೖΛఏҊ
  10. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ όʔδϣϯ؅ཧγεςϜͱ͸ • 8JLJQFEJBΑΓҾ༻ lόʔδϣϯ؅ཧγεςϜͷ࠷΋جຊతͳػೳ͸ɺϑΝΠ ϧͷ࡞੒೔࣌ɺมߋ೔࣌ɺมߋ఺ͳͲͷཤྺΛอ؅͢Δ ͜ͱͰ͋Δɻ͜ΕʹΑΓɺԿ౓΋มߋΛՃ͑ͨϑΝΠϧ Ͱ͋ͬͯ΋ɺաڈͷঢ়ଶ΍มߋ಺༰Λ֬ೝͨ͠Γɺมߋલ ͷঢ়ଶΛ෮ݩ͢Δ͜ͱ͕༰қʹͳΔɻʙʢུʣz

    https://ja.wikipedia.org/wiki/όʔδϣϯ؅ཧγεςϜ
  11. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ όʔδϣϯ؅ཧγεςϜͷಋೖ • όʔδϣϯ؅ཧγεςϜΛಋೖ͢Δͱɺ ϑΝΠϧ໊όʔδϣϯ؅ཧΑΓ҆શͰɺ ͔ͭศརʹόʔδϣϯ؅ཧΛߦ͏͜ͱ͕Մೳ • Ͳ͏ͯ҆͠શͳͷ͔ɺͲ͏ͯ͠ศརͳͷ͔ʹ͍ͭͯɺ όʔδϣϯ؅ཧγεςϜͷ(JUͷ঺հͱͱ΋ʹઆ໌

  12. ͝ΜΕͷϥϘ • ϑΝΠϧͷ௥Ճɺ࡟আɺ಺༰มߋͳͲͷมߋཤྺΛ ϦϙδτϦͱݺ͹ΕΔ৔ॴʹอଘ͠ɺ աڈͷཤྺͷ֬ೝɺมߋ಺༰ͷ֬ೝɺ มߋલͷঢ়ଶ΁ͷ෮ݩͳͲΛՄೳʹ͢Δ • ϦϙδτϦͷछྨ ‣ ϩʔΧϧʢࣗ෼ͷ1$ʣʹ഑ஔ͢ΔϩʔΧϧϦϙδτϦ

    ‣ αʔόʹ഑ஔ͢ΔϦϞʔτϦϙδτϦ ͝ΜΕͷϥϘ (JUͱ͸
  13. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ ΑΓৄ͘͠஌Γ͍ͨํ͸ • (JUͷެࣜαΠτ ‣ IUUQTHJUTDNDPN • (JUͷެࣜυΩϡϝϯτ ‣

    IUUQTHJUTDNDPNCPPLKBW
  14. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ (JUͷόʔδϣϯ؅ཧͷखॱ • ༻ޠ΍ίϚϯυʹ͍ͭͯ͸ɺࢿྉΛࢀর • खॱΛઆ໌͠ͳ͕ΒɺλʔϛφϧͰσϞ

  15. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ (JUͷόʔδϣϯ؅ཧͷखॱ ϑΥϧμΛ࡞੒ͯ͠ɺҠಈ $ mkdir Sample $ cd Sample

    ϩʔΧϧϦϙδτϦΛ࡞੒ ˞ॳճͷΈඞཁ $ git init
  16. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ (JUͷόʔδϣϯ؅ཧͷखॱ ϫʔΫπϦʔʢ(JU؅ཧԼʹ͋Δ࡞ۀ༻ͷσΟϨΫτϦʣ ʹϑΝΠϧΛ௥Ճɺ·ͨ͸ϑΝΠϧͷ಺༰Λมߋ $ touch sample.jsx ϫʔΫπϦʔ಺ͷϑΝΠϧͷঢ়ଶΛ֬ೝ $

    git status
  17. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ (JUͷόʔδϣϯ؅ཧͷखॱ ௥Ճɾมߋͨ͠ϑΝΠϧΛεςʔδϯάɾΤϦΞ ʢίϛοτ͢ΔϑΝΠϧΛه࿥͢Δ৔ॴʣʹొ࿥ $ git add sample.jsx ϫʔΫπϦʔ಺ͷϑΝΠϧͷঢ়ଶΛ֬ೝ

    $ git status
  18. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ (JUͷόʔδϣϯ؅ཧͷखॱ ίϛοτʢεςʔδϯάɾΤϦΞʹొ࿥͞Εͨมߋର৅ ΛϦϙδτϦʹ൓өʣ͢Δ $ git commit -m ϑΝΠϧΛ௥Ճ

    ϫʔΫπϦʔ಺ͷϑΝΠϧͷঢ়ଶΛ֬ೝ $ git status • खॱʙΛ܁Γฦ͠ɺมߋཤྺΛه࿥
  19. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ (JUͷόʔδϣϯ؅ཧͷखॱ • มߋཤྺΛه࿥͢Δ͜ͱʹΑΓɺ͍ͭͰ΋ϑΝΠϧΛ աڈͷঢ়ଶʹ໭͢͜ͱ͕Մೳ • ࢲͷதͰόʔδϣϯ؅ཧγεςϜͷҰ൪ͷར఺

  20. ͝ΜΕͷϥϘ • Ұൠతʹ͸ɺదٓϒϥϯνΛ࡞੒ͯ͠ɺ ৽ػೳͷ։ൃ΍όάͷमਖ਼Λߦ͏͜ͱ͕ଟ͍ ‣ ࡞੒ͨ͠ϒϥϯν͸࠷ऴతʹNBTUFSʹϚʔδ͢Δ ͝ΜΕͷϥϘ (JUͷόʔδϣϯ؅ཧͷखॱ

  21. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ (JUͷόʔδϣϯ؅ཧͷखॱ • ϦϞʔτϦϙδτϦͱ࿈ܞ͢Δ

  22. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ (JUΛ4PVSDF5SFF͔Β࢖͏ • ίϚϯυΛλʔϛφϧͰೖྗ͢ΔҎ֎ͷํ๏ͱͯ͠ (6*πʔϧΛ࢖༻͢Δํ๏͕͋Δ • (6*Ͱૢ࡞͍ͨ͠ํ͸ɺ4PVSDF5SFF͕͓͢͢Ί • 4PVSDF5SFFͱ͸

    ‣ ࢼ༻ظؒ͸೔ؒɻϢʔβొ࿥͢Δͱܧଓͯ͠࢖͑Δ ‣ IUUQTKBBUMBTTJBODPNTPGUXBSFTPVSDFUSFF
  23. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ (JUΛ4PVSDF5SFF͔Β࢖͏ • 4PVSDF5SFFΛ࢖༻͢Ε͹ɺλʔϛφϧͰίϚϯυΛ ೖྗ͢Δ͜ͱͳ͘ɺόʔδϣϯ؅ཧΛߦ͏͜ͱ͕Մೳ • 4PVSDF5SFF͕ཪଆͰίϚϯυૢ࡞Λͯ͘͠ΕΔ • 4PVSDF5SFFͰͲͷΑ͏ʹόʔδϣϯ؅ཧΛߦ͏͔ɺ

    खॱʹԊͬͯσϞΛ͠·͢
  24. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ (JUΛ4PVSDF5SFF͔Β࢖͏ • (6*Ͱૢ࡞Ͱ͖ΔͷͰศར • 4PVSDF5SFFΛ࢖͏͜ͱͰɺ (JUΛ࢖༻͢Δ͜ͱͷϋʔυϧ͸֨ஈʹԼ͕Δ • ίϚϯυͷ΄͏͕΍Γ΍͍͢৔߹΋͋ΔͷͰɺ

    ίϚϯυ΋֮͑Δ • ຊηογϣϯͷͨΊʹվΊͯษڧ͕ͨ͠ɺ ؆୯ͳૢ࡞͸ίϚϯυͷ΄͏͕ૣ͍͜ͱ΋͋Δ ‣ ୯७ͳίϛοτͳͲ
  25. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ ࠓ೔͓࿩ͨ͜͠ͱ • ϑΝΠϧ໊όʔδϣϯ؅ཧΛଔۀͯ͠ɺ όʔδϣϯ؅ཧγεςϜΛಋೖ͢Δ • (JUʹ৮ΕΔ • 4PVSDF5SFFΛ࢖͏

    • ίϚϯυ΋֮͑Δ
  26. バージョン管理で 心穏やかな日々を!

  27. ͝ΜΕͷϥϘ ͝ΜΕͷϥϘ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠