$30 off During Our Annual Pro Sale. View Details »

はじめてのGit #gitkyoto

はじめてのGit #gitkyoto

Gitのゆるめな勉強会
ワークショップ進行スライド

Hisateru Tanaka

February 16, 2013
Tweet

More Decks by Hisateru Tanaka

Other Decks in Technology

Transcript

  1. ͸͡ΊͯͷGit
    ͨͿΜؔ੢Ͱ͍ͪ͹ΜΏΔ͍Gitೖ໳

    View Slide

  2. ͨͳ͔ͻͯ͞Δ
    @tanakahisateru
    Pinoco developer
    js-markdown-extra maintainer
    PHPTAL contributor
    Firebug translation contributor
    Yii framework user
    ...and more OSS experienced

    View Slide

  3. Կऀ͔ͱ͍͏࿩ΛΘ
    ͔Γ΍͍͢ͱ͜Ͱ
    ͸͍͜ΕͰࠓ೔஻ͬͨਓ͕୭ͩͬ
    ͔ͨ๨Εͳ͘ͳΓ·ͨ͠

    View Slide

  4. ๻͸ͦΜͳGitͷ͍͢͝ਓ͡Όͳ͍Ͱ͢ɻ
    GitHubͰඞཁͳ࠷௿ݶͷ஌͔ࣝ͋͠Γ·ͤΜɻ
    Θ͔Βͳ͍͜ͱ͸͙͢άάΓ·͢ɻ
    Git͸ଞਓͱ࢖ͬͯφϯϘͰ͠ΐͬͯࢥ͍·͢ɻ
    Θͨ͠ͱGit

    View Slide

  5. ਓʹGitΛڭ͑Δͱ͜͏ͳͬͨ
    લ৬Ͱ͸ɺσβΠφʔ(ίʔμʔ)ͷಉ྅΍ΫϥΠΞϯτʹGit
    Λڭ͑ͯ࢖ͬͯ΋Βͬͯ·ͨ͠ɻ
    σβΠφʔ͸ʮ͜Εͳ͔ͬͨΒ࢓ࣄͰ͖ͳ͍ʯͬͯதಟʹͳ
    Γ·ͨ͠ɻ
    ΫϥΠΞϯτͱͷ΍ΓͱΓ͕௒εϜʔζʹͳΓ·ͨ͠ɻ

    View Slide

  6. ڭ͑ͳ͖ΌଛͩΑ͜Ε

    View Slide

  7. ͜ͷηογϣϯͰ͸
    ϗϯτͷೖ໳͔Βͪΐͬͱ͚ͩ౿ΈࠐΜͰ࢝Ί·͢ɻ
    Έͳ͞Μ͕৬৔ͳΓऔҾઌͳΓͰɺ෍ڭ͢ΔଆͷਓʹͳΔ͙
    Β͍ͷதಟʹ͢Δͷ͕໨ඪͰ͢ɻ(ॳ৺ऀͱ͔ؔ܎ͳ͍Ͱ͢)
    ڭΘΒͳͯ͘΋Θ͔ͬͯΔਓ͸ɺڭ͑ํͷώϯτΛύΫͬͯ
    ͍ͩ͘͞ɻGit͸ଞਓͱ࢖ͬͯφϯϘͰ͢ɻ

    View Slide

  8. όʔδϣϯ؅ཧͬͯ?
    ࣮͸Έͳ͞ΜɺͨͿΜ͢Ͱʹόʔδϣϯ؅ཧΛ΍͍ͬͯΔͱ
    ࢥ͍·͢Αɻ
    ೔෇໊Λ͚ͭͯϑΥϧμΛόοΫΞοϓ͢ΔΞϨɻ

    View Slide

  9. View Slide

  10. ͜ͷ΁Μ·ͩ΍Δؾ͋Δ

    View Slide

  11. ʮͪΐͬͱෳ਺ҊݟͤͯΑʯ
    ʮ͑ͬ...ʯ

    View Slide

  12. ʮ΍ͬͺΓલͷલͷ͕ྑ͔ͬͨʯ
    (΍Δؾͳ͘ͳ͖ͬͯͯΔײ)

    View Slide

  13. ʮ΍ͬͱϑΟοΫεҊͰ͖ͨ...όλοʯ

    View Slide

  14. ʮͬͦ͘͞Ͱѱ͍Μ͚ͩͲ௚͕͠...ʯ
    (นυϯͰ͢ΑͶ)

    View Slide

  15. ਺೔ޙ

    View Slide

  16. Ͳͷࢠ͕Ͳͷࢠ͔͠Β...?

    View Slide

  17. ख࡞ۀͷ᠘
    ਓؒ͸αϘΔ/যΔ/ؒҧ͑Δɻ
    ϑΥϧμͷલޙؔ܎ʹอূ͕ͳ͍ɻ
    ୭͕ԿΛͨ݁͠Ռͳͷ͔Θ͔Βͳ͍ɻ
    ϋʔυσΟεΫʹ΄ͱΜͲಉ͡಺༰ͷϑΥϧμͰ͖ͯɺ
    ͍͢͝ૣ͞Ͱ༰ྔΛѹഭͯ͘͠Δɻ

    View Slide

  18. ͦΜͳ͋ͳͨ΋
    GitΛ࢖͏ͱ

    View Slide

  19. ͜͏ͳΓ·͢

    View Slide

  20. ͞Βʹ͜͏ͳΓ·͢

    View Slide

  21. ೔෇ϑΥϧμͱͷ͕͍ͪ
    ୭͕ɺ͍ͭɺԿΛมߋͨ͠ͷ͔ཤྺʹ࢒Δɻ
    Ͳͷมߋ͕ͲΕΛݩʹͨ͠ͷ͔ɺॱ൪Λؒҧ͑ͳ͍ɻ
    ਖ਼ࣜͳ࠷৽൛͕Θ͔Δͱ͍͏େࣄ͞ɻ
    มߋ৘ใ͚ͩΛอଘ → ϋʔυσΟεΫΛѹഭ͠ͳ͍ɻ
    (ͳͷͰԕྀͳ͘όοΫΞοϓͰ͖Δ)

    View Slide

  22. Subversion < Git
    ॳ৺ऀʹ͸(ͦͯ͠ଟ෼কདྷͣͬͱ)Git͕Φεεϝɻ
    αʔόͷ४උ͕·ͩͰ΋࡞ۀΛ࢝ΊΒΕΔɻ
    FinderͰউखʹҠಈ/࡟আ/໊લมߋΛͯ͠΋յΕͳ͍ɻ
    มߋཤྺͷࢀর͕ͱͯ΋଎͍ɻ
    ϓϥάΠϯ͕ͳ͍ͷͰਓʹΑͬͯػೳͷ͕ࠩग़ͳ͍ɻ
    (͜Ε͸Mercurialʹର͢ΔϝϦοτ)

    View Slide

  23. Ͳ͏ͤGit͸ඞཁ

    View Slide

  24. ΈΜͳGitHub
    ΋ͬͱ͋ΔΑ

    View Slide

  25. ΍ͬͯΈΑ͏

    View Slide

  26. Πϯετʔϧ
    ࠷৽ͷXcodeΛ࢖͍ͬͯΔ
    ਓ͸΋͏ೖ͍ͬͯ·͢ɻ
    ͳ͍ਓ͸ͪ͜Β
    http://git-scm.com/

    View Slide

  27. Ͱɺ࣍͸...

    View Slide

  28. View Slide

  29. ଴ͬͯɺ͜Θ͘ͳ͍͔Β

    View Slide

  30. ͜Ε͔Β΍Ζ͏ͱͯ͠Δ͜ͱ
    ʮGit͸ίϚϯυͩʯͱ͍͏͜ͱΛ஌ͬͯ΋Β͍·͢ɻ
    ίϚϯυΛଧͪࠐΈͳ͕Β༻ޠΛ͓΅͑·͠ΐ͏ɻ
    ࣦഊͯ͠΋େৎ෉ɺ໨త͸ૢ࡞͡Όͳͯ͘ཧղͰ͢ɻ
    ֓೦Λཧղ͔ͯ͠ΒGUI΁ɻ
    ͦͷͱ͖͸΋͏ɺίϚϯυ͸๨Ε͍͍ͯͯɻ

    View Slide

  31. <
    \コワクナイカラ/

    View Slide

  32. ͏͖͝·͔͢

    View Slide

  33. ࣗ෼ͷ໊લΛઃఆ͠Α͏

    View Slide

  34. ࡞ۀऀͷ໊લ͸ࣗݾਃࠂͰ͢ɻ
    Git͸ࣗ෼Ͱউखʹ࢝ΊͨΓผͷαʔόʹҾӽͨ͠ΓͰ͖ΔͷͰɺ
    ୭͕࡞ۀ͔ͨ͠ͱ͍͏໊લ͸αʔόͷೝূͱ͸׬શʹผͳͷͰ͢ɻ

    View Slide

  35. ͜ͷ࿅शͰ࢖͏
    ιʔείʔυΛ...

    View Slide

  36. http://www.initializr.com/
    ύΫΓ·͢Ͷ

    View Slide

  37. IEͱ͔Faviconͱ͔ΦϑͰ

    View Slide

  38. μ΢ϯϩʔυ&ల։

    View Slide

  39. ͜Ε͕ॳ൛Ͱ͢

    View Slide

  40. View Slide

  41. ࡞ۀ͢ΔϑΥϧμΛ։͘
    cd[εϖʔε]ͷ͋ͱɺλʔϛφϧʹ
    ϑΥϧμΛυϩοϓ͠·͢ɻ

    View Slide

  42. ͍·։͖·ͨ͠

    View Slide

  43. ݱࡏλʔϛφϧͰ։͍͍ͯΔϑΥϧμΛʮΧ
    ϨϯτσΟϨΫτϦʯͱݴ͍·͢ɻ
    cd ͷޙʹύεΛࢦఆ͢ΔͱɺΧϨϯτσΟϨ
    ΫτϦΛม͑Δ͜ͱ͕Ͱ͖·͢ɻ
    ΧϨϯτσΟϨΫτϦͷ֬ೝ͸ pwd Ͱ͢ɻ

    View Slide

  44. ϗϯτʹ߹ͬͯΔ?

    View Slide

  45. ͜ͷ΁Μେৎ෉Ͱ͔͢ʔ

    View Slide

  46. ͍Α͍ΑGitͰ͢Αʔ

    View Slide

  47. git init

    View Slide

  48. .git=ϩʔΧϧϦϙδτϦ

    View Slide

  49. ϦϙδτϦ=ೖΕ෺
    .git ͕ফ͑ΔͱԿ΋ͳ͔ͬͨ͜ͱʹͳΔɻ
    શ෦΍Γ௚͍ͨ͠ͱ͖͸ rm -rf .git
    (͋Δ͍͸ৄ͍͠ਓʹͬͦ͜Γฉ͖·͠ΐ͏)

    View Slide

  50. git status

    View Slide

  51. Untracked files = ·ͩ؅ཧ͍ͯ͠ͳ͍ϑΝΠ
    ϧ͕͜Ε͚ͩ͋Δͱ͍͏͜ͱɻ
    git add Λ࢖͑ͱݴΘΕ͍ͯ·͢Ͷɻ

    View Slide

  52. git add

    View Slide

  53. add = ίϛοτ(͋ͱͰݴ͍·͢)͢ΔϦετʹϑΝ
    Πϧ௥Ճ͢Δͱ͍͏ҙຯͰ add Ͱ͢ɻ
    ͜ͷૢ࡞Λεςʔδͱݴ͍·͢ɻ
    όʔδϣϯ؅ཧͰ΋ͬͱ΋େࣄͳૢ࡞ɺίϛοτ
    ͷ४උͰ͢ɻ
    ͪΐ͏ͲɺFinderͰγϑτΩʔΛԡ͠ͳ͕ΒϑΝΠ
    ϧΛϙνϙν͢ΔΑ͏ͳ΋ͷͰ͢ɻ

    View Slide

  54. ͔Βͷ→ git status

    View Slide

  55. git status ͷ݁Ռ͕ Changes to be committed:
    ͱ͍͏ϦετʹͳΓ·ͨ͠ɻ
    ͍Α͍Α͕࣍ॳΊͯͷίϛοτͰ͢ɻ

    View Slide

  56. git commit -m “...”

    View Slide

  57. ॳճίϛοτ͓ΊͰͱ͏͍͟͝·͢ɻίϛοτ
    ͸όʔδϣϯ؅ཧͰ΋ͬͱ΋ॏཁͳػೳͰ͢ɻ
    બΜͩϑΝΠϧΛ .git ϑΥϧμͷதʹόοΫΞ
    οϓίϐʔͨ͠ΠϝʔδͰ͢ɻ
    ֤ίϛοτʹ͸ɺ࡞ۀऀͷ໊લɺίϛοτͷ೔
    ࣌ɺϝοηʔδ͕ඞͣ࢒Γ·͢ɻ

    View Slide

  58. -m ͳ͠Ͱ git commit ͱͯ͠͠·͍ɺͳʹ͕
    ى͔ͬͨ͜Θ͔Βͳ͍ਓ͸ɺۙ͘ͷৄͦ͠͏
    ͳਓʹฉ͍͍ͯͩ͘͞ɻ
    Θ͔Δਓ͸ͦͷ··ଓ͚ɺ:wq Ͱऴྃͨ͠Β
    ͍͍ͱࢥ͍·͢ɻ
    Θ͔Βͳ͍ਓ͸GUIΛ࢖͏·Ͱ଴ͬͯͶɻ

    View Slide

  59. git status ...?
    → git log ...!

    View Slide

  60. git status ͸ nothing to commit (working
    directory id clean)ͱݴ͍ͬͯ·͢ɻ࠷ޙͷίϛ
    οτ͔Β·ͩมߋ͕ͳ͍ͱ͍͏ҙຯͰ͢ɻ
    git log ͰաڈͷίϛοτΛࢀরͰ͖·͢ɻ
    ίϛοτʹ 00e8ac1be367fb350... ͱ͍͏ID͕෇
    ͍͍ͯΔ͜ͱ͕Θ͔Γ·͢ɻ͜ͷίϛοτͷϢ
    χʔΫͳ؅ཧ൪߸ͰɺΘΓͱॏཁͰ͢ɻ

    View Slide

  61. ৺഑ͳΒ git log --stat

    View Slide

  62. ΋͠ .DS_Store ͰάνάνݴΘΕΔਓ͸...

    View Slide

  63. .gitignore ͱ͍͏ϑΝΠϧʹ

    View Slide

  64. .DS_Store ͱॻ͖·͢

    View Slide

  65. .gitignore = git + ignore (ແࢹ)
    ແࢹ͢ΔϑΝΠϧ໊΍ύεͷύλʔϯΛॻ͘

    View Slide

  66. ͜͜·Ͱͷ·ͱΊ
    git init
    git status
    git add <file/folder>
    git commit -m “message”
    git log
    .gitignore

    View Slide

  67. Ή͔͍ͣ͠ͻͱʔ

    View Slide

  68. ͦ͏Ͱ͢Ͷ...

    View Slide

  69. ༊͠੒෼ิॆ͠ͱ͖·͢

    View Slide

  70. ͔͜͜Β໘ന͘
    ͳΔΑɻ
    index.htmlʹ
    มߋൃੜɻ

    View Slide

  71. git status

    View Slide

  72. git diff

    View Slide

  73. git commit -a -m “...”

    View Slide

  74. git commit -a ͸มߋ͞ΕͨϑΝΠϧΛ͢΂ͯ
    add ͔ͯ͠Βίϛοτͱ͍͏ҙຯͰ͢ɻ
    git add Ͱεςʔδ͔ͯ͠Β git commit ͢Δ
    ͷͱಉ͡Ͱ͢ɻ

    View Slide

  75. git log

    View Slide

  76. ϩάͷ݁Ռ͕2ͭʹͳΓ·ͨ͠ɻ
    ʮιʔεΛมߋͯ֬͠ೝɾίϛοτʯΛࣗ༝
    ʹ΍ͬͯΈ·͠ΐ͏ɻ

    View Slide

  77. ࡞ۀ͕۠੾ΕͨΒ͙͢ʹίϛοτ͠·͠ΐ
    ͏ɻ
    ࠩ෼อଘͳͷͰ༰ྔ͸৯͍·ͤΜɻԕྀͳ͘
    ͲΜͲΜ΍Γ·͠ΐ͏ɻ(※ Photoshop͸ผ)
    ස౓ͷ໨҆͸ɺ1ߦͷϝοηʔδͰҙຯΛද
    ͤΔఔ౓ͷมߋηοτͰ͢ɻ

    View Slide

  78. ͜͜·Ͱͷ·ͱΊ
    git status ΍ git diff Ͱঢ়ଶΛ֬ೝͭͭ͠...
    มߋ → ίϛοτ → มߋ → ίϛοτ → ...
    ͜͜͸೉͘͠ͳ͍Ͱ͢Ͷɻ

    View Slide

  79. ͭ͗ɺͪΐͬͱ೉͍͠࿩ʹͳΓ·͢ɻ

    View Slide

  80. <
    \コワクナイカラ/

    View Slide

  81. HTMLͷߋ৽Λ͠ͳ͕Β
    ཪͰίπίπCSSΛม͍͑ͨ

    View Slide

  82. ϒϥϯν

    View Slide

  83. git branch css-coding
    git checkout css-coding

    View Slide

  84. css-coding ͱ͍͏໊લͷϒϥϯνΛ࡞Γɺϒ
    ϥϯνΛ੾Γସ͑·ͨ͠ɻ
    ׳Ε͍ͯΔਓ͸
    git checkout -b css-coding
    Ͱɺ࡞੒ͱ੾Γସ͑Λಉ࣌ʹͰ͖·͢ɻ

    View Slide

  85. git branch (ύϥϝʔλͳ͠)

    View Slide

  86. ϒϥϯν͕2ͭ͋Δ͜ͱɺࠓͷϒϥϯν͕
    css-codingͩͱ͍͏͜ͱ͕Θ͔Γ·͢ɻ
    master = ࠷ॳ͔Β͋ΔϝΠϯͷϒϥϯν

    View Slide

  87. css-coding
    ϒϥϯνͰɺ
    css/main.css
    Λॻ͖׵͑ɻ

    View Slide

  88. commit → log

    View Slide

  89. H1 HENKOU → CSS PINK ͱ͍͏มߋͷྲྀΕ
    Ͱͨ͠Ͷɻ͜ΕΛԱ͓͍͍͑ͯͯͩ͘͞ɻ
    (ਓʹΑͬͯ͸ҧ͏͔΋͠Ε·ͤΜ)
    ͜͜ͰɺCSSͷ࡞ۀΛ΍ΊͯɺHTML͚ͩม
    ߋ͢Δ࡞ۀͷྲྀΕʹ໭Γ·͠ΐ͏ɻ

    View Slide

  90. git checkout master

    View Slide

  91. masterϒϥϯνͰ͸ɺ࠷ޙͷίϛοτ͕·ͩ
    H1 HENKOU ͷ··Ͱ͢ɻͭ·Γ...

    View Slide

  92. ΋ͱͲ͓Γ

    View Slide

  93. Կࣄ΋ͳ͔ͬͨ
    ͔ͷΑ͏ʹ
    index.html
    Λॻ͖׵͑ͯ...

    View Slide

  94. commit → log

    View Slide

  95. H1 HENKOU → KIJI MIDASI ͱ͍͏ྲྀΕͰ
    ίϛοτ͕ͭͳ͕Γ·ͨ͠ɻ
    masterϒϥϯνͰ͸ɺCSSؔ܎ͷίϛοτ͕
    ͳ͔ͬͨ͜ͱʹͳ͍ͬͯ·͢ɻ

    View Slide

  96. ผϑΥϧμ࡞ۀͷΠϝʔδ
    master css-coding

    View Slide

  97. branchͱ͸
    git branch css-coding
    css-coding

    View Slide

  98. checkoutͱ͸
    master
    git checkout master
    ࡞ۀϑΥϧμ

    View Slide

  99. git log --oneline --graph --all

    View Slide

  100. ͔ͨ͠ʹίϛοτͷཤྺ͕෼ذ͍ͯ͠·͢ɻ
    ϒϥϯν͸ผͷਓͱ࡞ۀ͢Δͱ͖༗ޮͰ͢ɻଞͷόʔδϣ
    ϯ؅ཧπʔϧͱGit͕ҧ͏ͷ͸ɺλάͳΜ͔ΑΓͣͬͱϒ
    ϥϯνͷ΄͏͕࢖༻ස౓ߴ͍ͱ͍͏఺Ͱ͢ɻ
    Ͱ΋ͪΐͬͱ೉͍͠ͷͰɺޓ͍ʹಉ࣌ʹ৮Βͳ͍Α͏੠
    Λ͔͚ͳ͕ΒͻͱͭͷϒϥϯνͰ΍ͬͯ΋͍͍Ͱ͢ɻ
    ͨͩ͠ɺ͜ͷʮίϛοτͷ෼ذʯͱ͍͏֓೦͸ɺGitΛཧ
    ղͯ͠࢖͏্Ͱઈରʹ๨Εͯ͸͍͚·ͤΜɻ

    View Slide

  101. git merge -m “...” css-coding

    View Slide

  102. ͨͬͨͻͱͭͷίϚϯυͰ
    ผͷϒϥϯνͷ࡞ۀ͕߹ମ!

    View Slide

  103. mergeͱ͸
    master css-coding
    git merge

    View Slide

  104. Ϛʔδ͸ɺ૬खͷϒϥϯν͔ΒมߋϑΝΠϧ
    ͚ͩΛऔΓग़ͯ͠ɺࣗ෼ͷϑΝΠϧΛ্ॻ͖
    ͢ΔΠϝʔδɻ
    ΋͠ϒϥϯνؒͰಉ͡ϑΝΠϧΛมߋͯͨ͠
    ΒɺͦΕΒ͕ڝ߹(ίϯϑϦΫτ)ͨ͠ঢ়ଶʹ
    ͳΓ·͢ɻ

    View Slide

  105. ͍·ίϯϑϦΫτʹ͍ͭͯઆ໌͢Δͷ͸େม
    ͳͷͰɺͳΔ΂͘ى͜͞ͳ͍Α͏ʹͯͩ͘͠
    ͍͞ɻ
    GitͰίϯϑϦΫτΛղফ͢Δͷ͸ɺ
    SubversionΑΓͣͬͱ؆୯ͳͷͰ҆͝৺Λɻ
    ΋͠ىͬͨ͜Βܦݧऀʹฉ͖·͠ΐ͏ɻ

    View Slide

  106. ࢀߟ: ௒Θ͔Γ΍͍͢ϒϥϯνͷ࿩
    http://www.slideshare.net/
    kotas/git-15276118

    View Slide

  107. ͜͜·Ͱͷ·ͱΊ
    git branch ϒϥϯν໊
    git checkout ϒϥϯν໊
    git branch
    git log --oneline --graph --all
    git merge ϒϥϯν໊

    View Slide

  108. Ή͔͍ͣ͠ͻͱʔ

    View Slide

  109. ͦΖͦΖ·ͨ༊͠੒෼

    View Slide

  110. ͍͍ͪͪίϚϯυଧͭͷ͸
    ਖ਼௚͠ΜͲ͍

    View Slide

  111. http://gitx.frim.nl/

    View Slide

  112. ͋͑ͯ΋ͬͱ΋ݹ͍GitXΛ࢖͍·͢ɻ
    ͜͜·Ͱͷઆ໌ʹରԠ͢Δػೳ͔͠ͳ͍ͷ
    Ͱɺ͘͢͝Θ͔Γ΍͍͢ɻ
    ίϚϯυӡ༻ͱͷ૬ੑ͕͍͍Ͱ͢ɻ
    ίϚϯυ͕ۤखͳਓʹ͸ɺޙͰ΋ͬͱઌͷػ
    ೳ͕͋ΔπʔϧΛ঺հ͠·͢ɻ

    View Slide

  113. log, diff, branch

    View Slide

  114. branch -d(࡟আ), checkout

    View Slide

  115. status, diff

    View Slide

  116. add, checkout --(มߋΛ΍ΊΔػೳ)

    View Slide

  117. commit + ΤσΟλ

    View Slide

  118. ͓·͚: λʔϛφϧ޷͖ͳΒ tig

    View Slide

  119. վߦίʔυͷมߋ CRLF→LF
    จࣈίʔυͷมߋ SJIS→UTF-8
    Πϯσϯτํ਑ͷมߋ λϒ→εϖʔε
    ઈର్தͰ΍ͬͯ͸͍͚ͳ͍͜ͱ

    View Slide

  120. ͜Ε΍ΔͱɺϑΝΠϧͷ͢΂ͯͷߦ͕ॻ͖׵Θͬͨͱೝࣝ͞
    Ε·͢ɻ
    ຊདྷͷมߋҙਤ͕Θ͔Βͳ͘ͳΓ·͢ɻ
    ΍ΔͳΒૣ͍ஈ֊ͰɺશιʔεͷϑΥʔϚοτΛҰؾʹมߋ
    ͢ΔίϛοτΛ͠·͠ΐ͏ɻ
    ઈର్தͰ΍ͬͯ͸͍͚ͳ͍͜ͱ

    View Slide

  121. <
    \コワクナイカラ/

    View Slide

  122. ͍Α͍ΑGitHub΁

    View Slide

  123. https://github.com/

    View Slide

  124. ·ͩͷਓ͸αΠϯΞοϓ

    View Slide

  125. Welcome to social coding.

    View Slide

  126. ެ։伴Λొ࿥
    ެ։伴ೝূͱSSHͷઆ໌͸ল͖·͢ɻ
    ͣ͹Γɺ~/.ssh ͋Γ·͔͢?
    open ~/.ssh
    id_rsa.pub ͕͋Ε͹OKɺͦΕΛ࢖͍·͢ɻ
    ͳ͍ਓ͸͜ΕͰ࡞Γ·͢:
    ssh-keygen -t rsa -C "[email protected]"
    ͢Ͱʹ͍࣋ͬͯΔਓ͸ྡͷਓΛख఻ͬͯ͋͛·͠ΐ͏ɻ

    View Slide

  127. ͜͜ʹৄ͘͠ग़͍ͯ·͢:
    https://help.github.com/articles/
    generating-ssh-keys

    View Slide

  128. id_rsa.pub Ͱ͖ͨΒ...
    Ͱɺid_rsa.pubͷ಺༰Λ·Δ͝ͱίϐϖ͠·͠ΐ͏ɻ

    View Slide

  129. ϦϙδτϦΛ࡞Ζ͏
    ͜͜

    View Slide

  130. Ͱ͖ͨ

    View Slide

  131. ͸͡Ίͯͷpush

    View Slide

  132. ⌘+R

    View Slide

  133. git push origin master ͸originͷϦϞʔτϦ
    ϙδτϦʹmasterϒϥϯνΛΞοϓϩʔυ͢
    ΔΠϝʔδͰ͢ɻ
    -u Φϓγϣϯ͸ɺҎ߱masterϒϥϯνͰ git
    push ͚ͩͨ͠ͱ͖ɺσϑΥϧτͰoriginʹ
    push͢ΔΑ͏ʹͳΔͱ͍͏ඥ෇͚ɻ

    View Slide

  134. push
    push

    View Slide

  135. ͱ͜ΖͰ͜ͷEditͬͯ?

    View Slide

  136. ฤूͰ͖ͪΌ͏!

    View Slide

  137. ϝοηʔδ+ίϛοτ

    View Slide

  138. git pull

    View Slide

  139. git pull ͸ϦϞʔτͷϦϙδτϦ͔ΒϩʔΧϧ
    ʹμ΢ϯϩʔυ͢ΔΠϝʔδɻ
    ͋ɺGitHubͷαΠτͰฤू͢Δͱɺಈ࡞֬ೝ
    Ͱ͖ͯͳ͍ιʔεͰίϛοτΛੵΉ͜ͱʹͳ
    ΔͷͰɺී௨͸μϝͰ͢Αɻ

    View Slide

  140. pull
    pull

    View Slide

  141. ϦϞʔτ͔Βpull͢Δ=μ΢ϯϩʔυͨ͠΋ͷΛແ໊ϒϥϯνͱ
    Έͳͯ͠ɺϚʔδ→ίϛοτΛ΍͍ͬͯΔɻ
    μ΢ϯϩʔυͯ͠Ϛʔδ͠ͳ͍pullΛfetchͱݴ͏ɻ
    pull = fetch + merge
    ͱʹ͔͘ɺ͍͖ͳΓϩʔΧϧͥΜͿ্ॻ͖Ͱ͸ͳ͍ɻ
    FTPͰམͱ͖ͯͨ͠ϑΝΠϧΛ͍͖ͳΓ্ॻ͖ͯ͠ࠔͬͨ͜ͱ...
    ͋Γ·͢ΑͶɻ
    pullͷ஫ҙ఺

    View Slide

  142. ϦϞʔτͷ࠷৽ΑΓݹ͍ঢ়گʹੵΜͩίϛοτΛpush͢Δͷ
    ͸ېࢭ͞Ε·͢ɻ
    ͳͷͰɺ·ͣϩʔΧϧʹpull͔ͯ͠Βɺ࡞ۀ→ίϛοτ
    →pushͷॱংΛकΓ·͠ΐ͏ɻ
    ଞͷਓ্͕͛ͨαʔόͷ࠷৽Λݹ͍ϑΝΠϧͰFTP্ॻ͖͠
    ͯࠔͬͨ͜ͱ...͋Γ·͢ΑͶɻ
    pushͷ஫ҙ఺

    View Slide

  143. ΍΍͍͜͠ͷͰɺͱΓ͋͑ͣWeb੍࡞ͷݴ༿Ͱ͍͏ͱɺαʔ
    ό΁ͷΞοϓϩʔυͱαʔό͔Βͷμ΢ϯϩʔυͰOKͰ͢ɻ
    ͨͩɺಥવͷ্ॻ͖Ͱେࣦഊ͠ͳ͍૷ஔ͕෇͍ͯΔͱ͍͏͜
    ͱ͚ͩཧղ͍ͯͩ͘͠͞ɻ
    GitͰΤϥʔʹͳΔͱ͍͏ͱ͖͸ɺ΋ͦ͜͠Ͱࣦഊ͕ى͖ͳ͔
    ͬͨΒɺ΋ͬͱͻͲ͍͜ͱ͕ى͍ͬͯͨ͜ɺͱ͍͏ՄೳੑΛ
    ๷͍Ͱ͘Ε͍ͯΔͱࢥ͍·͠ΐ͏ɻ
    Ή͔͍ͣ͠ͻͱʔ

    View Slide

  144. ͱ͜ΖͰ͖ͬ͞ɺoriginʹʮmasterΛʯpush
    ͨ͠ͱݴ͍·ͨ͠ɻ

    View Slide

  145. ͭ·Γ...GitHubʹ͸·ͩ css-coding ϒϥϯν
    ͕ͳ͍!!

    View Slide

  146. git push origin css-coding

    View Slide

  147. ϒϥϯν΋pushͰ͖ͨ

    View Slide

  148. pushͱpull͸ϒϥϯν͝ͱʹݸผͰ͢ɻ
    ͲΕΛpush/pull͢Δ͔Λҙࣝ͠·͠ΐ͏ɻ
    ݸผ͔ͩΒͱ͍ͬͯ༰ྔ͕ഒʹͳΔΘ͚Ͱ͸͋Γ·ͤ
    Μɻফඅ͢Δͷ͸ࠩ෼ͷྔ͚ͩͰ͢ɻ

    View Slide

  149. ϩʔΧϧͷ࡞ۀσΟϨΫτϦΛ࡟আͯ͠΋ฏؾɻ
    ͜ΕͰαʔόʹશ෦͋ΔͷͰ

    View Slide

  150. GitHubͷ͔͜͜Β

    View Slide

  151. git clone ...

    View Slide

  152. ·͋ɺclone ͢Δͷ͸͍͍ͩͨଞਓͰ͢ɻ
    ్த͔Β࡞ۀʹࢀՃ͢Δਓ͸ɺgit init Ͱ͸ͳ
    ͘͜ͷ git clone ͔Βελʔτ͠·͢ɻ
    ͋ͱͰଞͷਓͱڞಉ࡞ۀͷ࿅श͠·͠ΐ͏ɻ

    View Slide

  153. ෮ݩͰ͖·ͨ͠

    View Slide

  154. ͍΍ʙΑ͔ͬͨΑ͔ͬ...

    View Slide

  155. ͓΍?
    img

    View Slide

  156. ஫: ۭϑΥϧμ͸μϝ
    Git͸ۭͷϑΥϧμΛ؅ཧͰ͖·ͤΜɻ͋͘·ͰϑΝΠϧͷมߋ
    ͷ؅ཧͳͷͰɻ
    ۭͬΆͷϑΥϧμΛҡ͍࣋ͨ͠৔߹ɺதʹԿ͔μϛʔͷϑΝΠ
    ϧΛೖΕ͍ͯͩ͘͞ɻ
    μϛʔϑΝΠϧ໊͸ empty, .gitkeep, .gitignore, .htaccess ͳͲ͍
    Ζ͍Ζͳश׳͕͋Γ·͢ɻ
    ͋·Γ৺഑͠ͳͯ͘΋࣮֐͕͋Δ͜ͱ͸·ΕͰ͢ɻ

    View Slide

  157. ͪͳΈʹmasterҎ֎ͷϦϞʔτϒϥϯνΛ
    ϩʔΧϧʹ࿈Εͯ͘ΔͳΒ...
    git branch css-coding origin/css-coding

    View Slide

  158. ͜͜·Ͱͷ·ͱΊ
    git remote add ϦϙδτϦ໊ ΞυϨε
    git push -u ϦϙδτϦ໊ ϒϥϯν໊
    git push (஫:ϒϥϯν͝ͱ)
    git pull
    git clone ΞυϨε
    ۭͷϑΥϧμ͸ແࢹ͞ΕΔ
    git branch ϒϥϯν໊ origin/ϒϥϯν໊

    View Slide

  159. ༊͠(ry

    View Slide

  160. ͓଴ͨͤ͠·ͨ͠
    GUIͰ͢Α

    View Slide

  161. http://rowanj.github.com/gitx/

    View Slide

  162. GitXͷ͍͢͝൛

    View Slide

  163. clone

    View Slide

  164. remote/fetch/pull/push

    View Slide

  165. ͜Μͳ͜ͱ·Ͱ
    git branch css-... origin/css-...

    View Slide

  166. GitX͸gitίϚϯυʹ஧࣮ͳUIͳͷͰɺίϚϯ
    υͰཧղͨ͠ਓ͕࢖͍΍͍͢Ͱ͢ɻ
    ͜ͷUIࣗମ͕ʮGitͰͰ͖Δ͜ͱू(؆қ൛)ʯ
    ͋Γ͕ͪͳૢ࡞͕ͻͱͱ͓Γ͋ΔͷͰɺ͞Β
    ʹษڧ͢ΔϙΠϯτ͕ݟ͖͑ͯ·͢ɻ

    View Slide

  167. ·ͩ͜Ε͡Ό࢖͍ʹ͍͘
    ͱࢥͬͨΒɺϝΠϯͰ࢖
    ͏πʔϧ͸΋ͬͱࣗ෼ʹ
    ߹͏ͷΛબͼ·͠ΐ͏ɻ

    View Slide

  168. ͜ΕͰΑ͏΍͘
    ελʔτϥΠϯ

    View Slide

  169. Ή͔͍ͣ͠ͻͱʔ

    View Slide

  170. gitͷίϚϯυ
    Ή͔͍ͣ͠ͷ͸ʙ

    View Slide

  171. View Slide

  172. gitͷίϚϯυମܥ͸ʮ࢖͏ਓͷؾ࣋ͪʯͰ͸
    ͳ͘ʮ಺෦ઃܭͷࣄ৘ʯͰͰ͖͍ͯ·͢ɻ
    ࡞ͬͨਓͷؾ࣋ͪʹͳͬͨΒཧղͰ͖Δͱ͔
    ແཧήʔɻ
    ͳͷͰ...

    View Slide

  173. ࡉ͔͍ૢ࡞ํ๏͸๨Εͯ΋͔·͍·ͤΜɻ
    ༻ޠͱ֓೦ͱ࢓૊ΈͷجຊΛ๨Εͳ͍͜ͱ͕ॏཁͰ͢ɻ
    ཧղͯ͠͠·͑͹ɺGUIΛ࢖ͬͨ΄͏͕ޮ཰తͰ͢ɻ
    ίϚϯυΛ஌ΔͱɺGUIͷઆ໌ςΩετ͕ίϚϯυΦϓγϣ
    ϯͷԿΛࢦ͢ͷ͔ɺ૝૾Ͱ͖ΔΑ͏ʹͳΓ·͢ɻ
    ͔ͩΒͦ͜

    View Slide

  174. ͨͩ͠...
    ຊ౰ʹࠔͬͨͱ͖͸άάͬͯίϚϯυΛίϐϖͰ͖ΔΑ͏ʹ
    ͠ͱ͖·͠ΐ͏ɻ
    GUIͷૢ࡞खॱ͸ٕज़ϒϩάʹॻ͔Εʹ͍͘ɻ
    git͸άάΕΔ! ←͜͜ॏཁ

    View Slide

  175. ͓ർΕ༷Ͱͨ͠

    View Slide