GitとGithub初めの1歩

 GitとGithub初めの1歩

社内勉強会でLTとして発表した資料

7abf6b0f75a5facea016cc58485a4a45?s=128

HIRAKI Satoru

August 10, 2011
Tweet

Transcript

  1. ϋΠσοΨʔʹݟΒΕΔ ଘࡏ࿦ʹ͓͚Δݱ৅ֶ ฏ໦ ૱

  2. ϋΠσοΨʔʹݟΒΕΔ ଘࡏ࿦ʹ͓͚Δݱ৅ֶ ฏ໦ ૱

  3. GitͱGitHub ॳΊͷ1า ฏ໦ ૱

  4. Gitͱ͸Կʁ

  5. Gitͱ͸Կʁ • Φʔϓϯιʔε(GPL)ͷ෼ࢄܕόʔδϣϯ؅ཧ γεςϜ

  6. Gitͱ͸Կʁ • Φʔϓϯιʔε(GPL)ͷ෼ࢄܕόʔδϣϯ؅ཧ γεςϜ • Subversion͸ूதܕόʔδϣϯ؅ཧγεςϜ

  7. Gitͱ͸Կʁ • Φʔϓϯιʔε(GPL)ͷ෼ࢄܕόʔδϣϯ؅ཧ γεςϜ • Subversion͸ूதܕόʔδϣϯ؅ཧγεςϜ • Linux࡞ͬͨLinus͞Μ͕2005೥ʹඞཁʹഭΒΕ ͯʮԶɺLinuxϓϩδΣΫτ2िؒൈ͚ΔΘʯͱ ݴͬͯϚδͰ2िؒͰ࡞ͬͨͷ͕ݩͩͦ͏Ͱɻ

  8. Gitͱ͸Կʁ • Φʔϓϯιʔε(GPL)ͷ෼ࢄܕόʔδϣϯ؅ཧ γεςϜ • Subversion͸ूதܕόʔδϣϯ؅ཧγεςϜ • Linux࡞ͬͨLinus͞Μ͕2005೥ʹඞཁʹഭΒΕ ͯʮԶɺLinuxϓϩδΣΫτ2िؒൈ͚ΔΘʯͱ ݴͬͯϚδͰ2िؒͰ࡞ͬͨͷ͕ݩͩͦ͏Ͱɻ

    ఱ࠽͍ͬͯ͢͝ Ͱ͢Ͷ
  9. SubversionͱԿ͕ҧ͏ͷʁ

  10. SubversionͱԿ͕ҧ͏ͷʁ

  11. SubversionͱԿ͕ҧ͏ͷʁ

  12. SubversionͱԿ͕ҧ͏ͷʁ

  13. SubversionͱԿ͕ҧ͏ͷʁ

  14. SubversionͱԿ͕ҧ͏ͷʁ • େ͖ͳҧ͍͸ϩʔΧϧʹϦϙδτϦ͕ ݸผʹ͋ͬͯɺͦ͜ʹมߋΛه࿥ͯ͠ ͍͖ϦϞʔτͷϦϙδτϦͱಉظͤ͞ Δ఺

  15. SubversionͱԿ͕ҧ͏ͷʁ • େ͖ͳҧ͍͸ϩʔΧϧʹϦϙδτϦ͕ ݸผʹ͋ͬͯɺͦ͜ʹมߋΛه࿥ͯ͠ ͍͖ϦϞʔτͷϦϙδτϦͱಉظͤ͞ Δ఺ • ޙ͸άάΕ

  16. ͡Ό͋GitHub͸Կʁ

  17. ͡Ό͋GitHub͸Կʁ

  18. ͡Ό͋GitHub͸Կʁ • GitͷϦϞʔτϦϙδτϦͷϗεςΟϯά αʔϏε(railsͰ࡞ΒΕͯΔΒ͍͠)

  19. ͡Ό͋GitHub͸Կʁ • GitͷϦϞʔτϦϙδτϦͷϗεςΟϯά αʔϏε(railsͰ࡞ΒΕͯΔΒ͍͠) • ৭ΜͳϓϩδΣΫτ͕͜͜ͰϗεςΟϯά ͞Εͯ·͢(jQuery, Perl, Rails, node,

    symphony)
  20. GitHub࢖͏ͱԿ͕ḿΔʁ

  21. GitHub࢖͏ͱԿ͕ḿΔʁ • ৭ʑͱḿΔ

  22. GitHub࢖͏ͱԿ͕ḿΔʁ • ৭ʑͱḿΔ • ۩ମతʹ͸ࣗ෼ͷύονΛ౰ͯͯ΋Β͏ͷ΋ɺPull RequestૹΔ ͚ͩ(ӳޠ͚ͩͲ)

  23. GitHub࢖͏ͱԿ͕ḿΔʁ • ৭ʑͱḿΔ • ۩ମతʹ͸ࣗ෼ͷύονΛ౰ͯͯ΋Β͏ͷ΋ɺPull RequestૹΔ ͚ͩ(ӳޠ͚ͩͲ) • bugใࠂ΋ΞΧ΢ϯτ࣋ͬͯΕ͹௒؆୯(ӳޠ͚ͩͲ)

  24. GitHub࢖͏ͱԿ͕ḿΔʁ • ৭ʑͱḿΔ • ۩ମతʹ͸ࣗ෼ͷύονΛ౰ͯͯ΋Β͏ͷ΋ɺPull RequestૹΔ ͚ͩ(ӳޠ͚ͩͲ) • bugใࠂ΋ΞΧ΢ϯτ࣋ͬͯΕ͹௒؆୯(ӳޠ͚ͩͲ)

  25. GitHub࢖͏ͱԿ͕ḿΔʁ • ৭ʑͱḿΔ • ۩ମతʹ͸ࣗ෼ͷύονΛ౰ͯͯ΋Β͏ͷ΋ɺPull RequestૹΔ ͚ͩ(ӳޠ͚ͩͲ) • bugใࠂ΋ΞΧ΢ϯτ࣋ͬͯΕ͹௒؆୯(ӳޠ͚ͩͲ) •

    jQueryͱ͔ͩͬͨΒࣗ෼Ͱόάݟ͚ͭͨΓͨ͠Βύονૹͬͨ ΒώʔϩʔʹͳΕΔ͔΋ʁ(ӳޠ͚ͩͲ)
  26. GitHub࢖͏ͱԿ͕ḿΔʁ • ৭ʑͱḿΔ • ۩ମతʹ͸ࣗ෼ͷύονΛ౰ͯͯ΋Β͏ͷ΋ɺPull RequestૹΔ ͚ͩ(ӳޠ͚ͩͲ) • bugใࠂ΋ΞΧ΢ϯτ࣋ͬͯΕ͹௒؆୯(ӳޠ͚ͩͲ) •

    jQueryͱ͔ͩͬͨΒࣗ෼Ͱόάݟ͚ͭͨΓͨ͠Βύονૹͬͨ ΒώʔϩʔʹͳΕΔ͔΋ʁ(ӳޠ͚ͩͲ) • ࣗ෼ͰԿ͔ιʔε࡞ͬͨ࣌΋৭Μͳਓ͔Βɺ௚઀मਖ਼ͱ͔ͯ͠ ΋Β͑Δ͔΋͠Εͳ͍ɻ(ӳޠ͚ͩͲ)
  27. ͪΐͬͱԿݴͬͯΔ͔෼͔ Μͳ͍Ͱ͢

  28. ͪΐͬͱԿݴͬͯΔ͔෼͔ Μͳ͍Ͱ͢ • ࣗ෼͚ͩͷιʔείʔυஔ͖৔ͱͯ͠΋༏ल

  29. ͪΐͬͱԿݴͬͯΔ͔෼͔ Μͳ͍Ͱ͢ • ࣗ෼͚ͩͷιʔείʔυஔ͖৔ͱͯ͠΋༏ल • GitೖΕ͓͚ͯ͹ͲΜͳϚγϯͰ΋ಉ͡ίʔυΛमਖ਼ͨ͠ΓͰ͖·͢ Αͬͱ

  30. ͪΐͬͱԿݴͬͯΔ͔෼͔ Μͳ͍Ͱ͢ • ࣗ෼͚ͩͷιʔείʔυஔ͖৔ͱͯ͠΋༏ल • GitೖΕ͓͚ͯ͹ͲΜͳϚγϯͰ΋ಉ͡ίʔυΛमਖ਼ͨ͠ΓͰ͖·͢ Αͬͱ • dotfileͳΜ͔͸ख࢝Ίʹ࢖͏ͱྑ͍͔΋(Զ͸ͦ͏ͩͬͨ)

  31. ͪΐͬͱԿݴͬͯΔ͔෼͔ Μͳ͍Ͱ͢ • ࣗ෼͚ͩͷιʔείʔυஔ͖৔ͱͯ͠΋༏ल • GitೖΕ͓͚ͯ͹ͲΜͳϚγϯͰ΋ಉ͡ίʔυΛमਖ਼ͨ͠ΓͰ͖·͢ Αͬͱ • dotfileͳΜ͔͸ख࢝Ίʹ࢖͏ͱྑ͍͔΋(Զ͸ͦ͏ͩͬͨ) •

    wikiͱ͔΋࢖͑Δ্ʹ੩తϖʔδͰαΠτ࡞Δͷ΋Ͱ͖Δ
  32. ͪΐͬͱԿݴͬͯΔ͔෼͔ Μͳ͍Ͱ͢ • ࣗ෼͚ͩͷιʔείʔυஔ͖৔ͱͯ͠΋༏ल • GitೖΕ͓͚ͯ͹ͲΜͳϚγϯͰ΋ಉ͡ίʔυΛमਖ਼ͨ͠ΓͰ͖·͢ Αͬͱ • dotfileͳΜ͔͸ख࢝Ίʹ࢖͏ͱྑ͍͔΋(Զ͸ͦ͏ͩͬͨ) •

    wikiͱ͔΋࢖͑Δ্ʹ੩తϖʔδͰαΠτ࡞Δͷ΋Ͱ͖Δ • markdown͕ඪ४Ͱ࢖ΘΕͯΔͷͰɺ֮͑Δඞཁ͋Δ͚Ͳɺ׳ΕΕ͹؆ ୯ʹhtmlॻ͚·͢
  33. ͪΐͬͱԿݴͬͯΔ͔෼͔ Μͳ͍Ͱ͢ • ࣗ෼͚ͩͷιʔείʔυஔ͖৔ͱͯ͠΋༏ल • GitೖΕ͓͚ͯ͹ͲΜͳϚγϯͰ΋ಉ͡ίʔυΛमਖ਼ͨ͠ΓͰ͖·͢ Αͬͱ • dotfileͳΜ͔͸ख࢝Ίʹ࢖͏ͱྑ͍͔΋(Զ͸ͦ͏ͩͬͨ) •

    wikiͱ͔΋࢖͑Δ্ʹ੩తϖʔδͰαΠτ࡞Δͷ΋Ͱ͖Δ • markdown͕ඪ४Ͱ࢖ΘΕͯΔͷͰɺ֮͑Δඞཁ͋Δ͚Ͳɺ׳ΕΕ͹؆ ୯ʹhtmlॻ͚·͢ • gistͰsnippetొ࿥͢Δͷ΋ඇৗʹ࢖͍΍͍͢Ͱ͢
  34. ͪΐͬͱԿݴͬͯΔ͔෼͔ Μͳ͍Ͱ͢ • ࣗ෼͚ͩͷιʔείʔυஔ͖৔ͱͯ͠΋༏ल • GitೖΕ͓͚ͯ͹ͲΜͳϚγϯͰ΋ಉ͡ίʔυΛमਖ਼ͨ͠ΓͰ͖·͢ Αͬͱ • dotfileͳΜ͔͸ख࢝Ίʹ࢖͏ͱྑ͍͔΋(Զ͸ͦ͏ͩͬͨ) •

    wikiͱ͔΋࢖͑Δ্ʹ੩తϖʔδͰαΠτ࡞Δͷ΋Ͱ͖Δ • markdown͕ඪ४Ͱ࢖ΘΕͯΔͷͰɺ֮͑Δඞཁ͋Δ͚Ͳɺ׳ΕΕ͹؆ ୯ʹhtmlॻ͚·͢ • gistͰsnippetొ࿥͢Δͷ΋ඇৗʹ࢖͍΍͍͢Ͱ͢ • ݄$7Ͱඇެ։ϦϙδτϦ΋࢖͑ΔͷͰɺެ։ͨ͘͠ͳ͍ιʔε͸͜Ε Ͱ(Զ͸࢖ͬͯͳ͍)
  35. ͪΐͬͱԿݴͬͯΔ͔෼͔ Μͳ͍Ͱ͢ • ࣗ෼͚ͩͷιʔείʔυஔ͖৔ͱͯ͠΋༏ल • GitೖΕ͓͚ͯ͹ͲΜͳϚγϯͰ΋ಉ͡ίʔυΛमਖ਼ͨ͠ΓͰ͖·͢ Αͬͱ • dotfileͳΜ͔͸ख࢝Ίʹ࢖͏ͱྑ͍͔΋(Զ͸ͦ͏ͩͬͨ) •

    wikiͱ͔΋࢖͑Δ্ʹ੩తϖʔδͰαΠτ࡞Δͷ΋Ͱ͖Δ • markdown͕ඪ४Ͱ࢖ΘΕͯΔͷͰɺ֮͑Δඞཁ͋Δ͚Ͳɺ׳ΕΕ͹؆ ୯ʹhtmlॻ͚·͢ • gistͰsnippetొ࿥͢Δͷ΋ඇৗʹ࢖͍΍͍͢Ͱ͢ • ݄$7Ͱඇެ։ϦϙδτϦ΋࢖͑ΔͷͰɺެ։ͨ͘͠ͳ͍ιʔε͸͜Ε Ͱ(Զ͸࢖ͬͯͳ͍) • ୯७ʹ༗໊ϓϩδΣΫτͷಈ޲௥͏ͷ΋ྑ͍͔΋͠Εͳ͍
  36. ·ͣ͸GitΠϯετʔϧ͔Β

  37. ·ͣ͸GitΠϯετʔϧ͔Β • MacͳΒPort͔homebrew࢖͏ͷ͕Ұ൪ૣ͍ɻ ҰൃͰΠϯετʔϧͰ͖·͢ɻΦεεϝ͸ homebrewͰ͢ɻ

  38. ·ͣ͸GitΠϯετʔϧ͔Β • MacͳΒPort͔homebrew࢖͏ͷ͕Ұ൪ૣ͍ɻ ҰൃͰΠϯετʔϧͰ͖·͢ɻΦεεϝ͸ homebrewͰ͢ɻ • Windows͸…cygwinͱ͔ͩͱΤϥ͘ಈ࡞͕஗͍ ͷͰɺmysysGitೖΕΔͷ͕Ұ൪͔΋ɻ(ͪͳΈ ʹTortoiseGit΋͋Δ)

  39. ·ͣ͸GitΠϯετʔϧ͔Β • MacͳΒPort͔homebrew࢖͏ͷ͕Ұ൪ૣ͍ɻ ҰൃͰΠϯετʔϧͰ͖·͢ɻΦεεϝ͸ homebrewͰ͢ɻ • Windows͸…cygwinͱ͔ͩͱΤϥ͘ಈ࡞͕஗͍ ͷͰɺmysysGitೖΕΔͷ͕Ұ൪͔΋ɻ(ͪͳΈ ʹTortoiseGit΋͋Δ) •

    ৄ͍͠Πϯετʔϧํ๏͸…άάΕ
  40. GitHubͰΞΧ΢ϯτ࡞੒

  41. GitHubͰΞΧ΢ϯτ࡞੒ • ඞཁͳ෺

  42. GitHubͰΞΧ΢ϯτ࡞੒ • ඞཁͳ෺ • ϝʔϧΞυϨε

  43. GitHubͰΞΧ΢ϯτ࡞੒ • ඞཁͳ෺ • ϝʔϧΞυϨε • sshެ։ɾൿີ伴

  44. GitHubͰΞΧ΢ϯτ࡞੒ • ඞཁͳ෺ • ϝʔϧΞυϨε • sshެ։ɾൿີ伴 • λʔϛφϧΤϛϡϨʔλʔ

  45. GitHubͰΞΧ΢ϯτ࡞੒ • ඞཁͳ෺ • ϝʔϧΞυϨε • sshެ։ɾൿີ伴 • λʔϛφϧΤϛϡϨʔλʔ •

    ༐ؾ
  46. GitHubͰΞΧ΢ϯτ࡞੒ • ඞཁͳ෺ • ϝʔϧΞυϨε • sshެ։ɾൿີ伴 • λʔϛφϧΤϛϡϨʔλʔ •

    ༐ؾ
  47. ຐ๏ͷݴ༿

  48. ຐ๏ͷݴ༿ • ·ͣ͸sshίϚϯυͰ伴࡞੒

  49. ຐ๏ͷݴ༿ • ·ͣ͸sshίϚϯυͰ伴࡞੒ ➡ $ ssh-keygen -C "your@email.com" -t rsa

  50. ຐ๏ͷݴ༿ • ·ͣ͸sshίϚϯυͰ伴࡞੒ ➡ $ ssh-keygen -C "your@email.com" -t rsa

    • git configͰ໊લͱϝʔϧΞυϨεઃఆ
  51. ຐ๏ͷݴ༿ • ·ͣ͸sshίϚϯυͰ伴࡞੒ ➡ $ ssh-keygen -C "your@email.com" -t rsa

    • git configͰ໊લͱϝʔϧΞυϨεઃఆ ➡ $ git config --global user.name "Your Name Here"
  52. ຐ๏ͷݴ༿ • ·ͣ͸sshίϚϯυͰ伴࡞੒ ➡ $ ssh-keygen -C "your@email.com" -t rsa

    • git configͰ໊લͱϝʔϧΞυϨεઃఆ ➡ $ git config --global user.name "Your Name Here" ➡ $ git config --global user.email your@email.com
  53. GitHub΁Go!

  54. GitHub΁Go! • ϩʔΧϧʹϓϩδΣΫτ༻σΟϨΫτϦ࡞੒

  55. GitHub΁Go! • ϩʔΧϧʹϓϩδΣΫτ༻σΟϨΫτϦ࡞੒ ➡ $cd /e/data/project

  56. GitHub΁Go! • ϩʔΧϧʹϓϩδΣΫτ༻σΟϨΫτϦ࡞੒ ➡ $cd /e/data/project • gitσΟϨΫτϦͷॳظԽ

  57. GitHub΁Go! • ϩʔΧϧʹϓϩδΣΫτ༻σΟϨΫτϦ࡞੒ ➡ $cd /e/data/project • gitσΟϨΫτϦͷॳظԽ ➡ $git

    init
  58. GitHub΁Go! • ϩʔΧϧʹϓϩδΣΫτ༻σΟϨΫτϦ࡞੒ ➡ $cd /e/data/project • gitσΟϨΫτϦͷॳظԽ ➡ $git

    init • READMEϑΝΠϧ࡞੒ɾ௥Ճ
  59. GitHub΁Go! • ϩʔΧϧʹϓϩδΣΫτ༻σΟϨΫτϦ࡞੒ ➡ $cd /e/data/project • gitσΟϨΫτϦͷॳظԽ ➡ $git

    init • READMEϑΝΠϧ࡞੒ɾ௥Ճ ➡ $touch README→த਎͸ۭͰ΋ྑ͍
  60. GitHub΁Go! • ϩʔΧϧʹϓϩδΣΫτ༻σΟϨΫτϦ࡞੒ ➡ $cd /e/data/project • gitσΟϨΫτϦͷॳظԽ ➡ $git

    init • READMEϑΝΠϧ࡞੒ɾ௥Ճ ➡ $touch README→த਎͸ۭͰ΋ྑ͍ ➡ $git add README
  61. GitHub΁Go! • ϩʔΧϧʹϓϩδΣΫτ༻σΟϨΫτϦ࡞੒ ➡ $cd /e/data/project • gitσΟϨΫτϦͷॳظԽ ➡ $git

    init • READMEϑΝΠϧ࡞੒ɾ௥Ճ ➡ $touch README→த਎͸ۭͰ΋ྑ͍ ➡ $git add README • ϦϙδτϦʹίϛοτͯ͠ɺGitHubʹ௥Ճ
  62. GitHub΁Go! • ϩʔΧϧʹϓϩδΣΫτ༻σΟϨΫτϦ࡞੒ ➡ $cd /e/data/project • gitσΟϨΫτϦͷॳظԽ ➡ $git

    init • READMEϑΝΠϧ࡞੒ɾ௥Ճ ➡ $touch README→த਎͸ۭͰ΋ྑ͍ ➡ $git add README • ϦϙδτϦʹίϛοτͯ͠ɺGitHubʹ௥Ճ ➡ $git commit -m ‘ίϛοτϝοηʔδ’
  63. GitHub΁Go! • ϩʔΧϧʹϓϩδΣΫτ༻σΟϨΫτϦ࡞੒ ➡ $cd /e/data/project • gitσΟϨΫτϦͷॳظԽ ➡ $git

    init • READMEϑΝΠϧ࡞੒ɾ௥Ճ ➡ $touch README→த਎͸ۭͰ΋ྑ͍ ➡ $git add README • ϦϙδτϦʹίϛοτͯ͠ɺGitHubʹ௥Ճ ➡ $git commit -m ‘ίϛοτϝοηʔδ’ ➡ $git remote add origin git@github.com:user/project.git→࠷ॳͷ1ճͷΈ
  64. GitHub΁Go! • ϩʔΧϧʹϓϩδΣΫτ༻σΟϨΫτϦ࡞੒ ➡ $cd /e/data/project • gitσΟϨΫτϦͷॳظԽ ➡ $git

    init • READMEϑΝΠϧ࡞੒ɾ௥Ճ ➡ $touch README→த਎͸ۭͰ΋ྑ͍ ➡ $git add README • ϦϙδτϦʹίϛοτͯ͠ɺGitHubʹ௥Ճ ➡ $git commit -m ‘ίϛοτϝοηʔδ’ ➡ $git remote add origin git@github.com:user/project.git→࠷ॳͷ1ճͷΈ ➡ $git push origin master
  65. GitHubϥΠϑΛָ͠ΜͰԼ ͍͞

  66. GitHubϥΠϑΛָ͠ΜͰԼ ͍͞ • ͜Μͳ௕ʑͱઆ໌͠·͕ͨ͠ɺ࣮͸GitHubʹϦϙ δτϦ࡞Δ࣌ͱ͔ʹ਌੾ʹࠓ·ͰͷίϚϯυ͕શ ෦ࡌ͍ͬͯͨΓ͠·͢

  67. GitHubϥΠϑΛָ͠ΜͰԼ ͍͞ • ͜Μͳ௕ʑͱઆ໌͠·͕ͨ͠ɺ࣮͸GitHubʹϦϙ δτϦ࡞Δ࣌ͱ͔ʹ਌੾ʹࠓ·ͰͷίϚϯυ͕શ ෦ࡌ͍ͬͯͨΓ͠·͢ • ͱ΋͋Εɺ͜Ε͔ΒjQueryͱ͔࢖͏ͷʹGitHub ࢖ͬͯΔͱ৭ʑͱศརͳࣄ΋͋ΔΜ͡Όͳ͍͔ͱ ͍͏ͷͱɺpsdͱ͔html/cssͰ΋࢖͑ΔͷͰɺݸਓ

    Ͱษڧ͢Δ࣌ʹ΋࢖͑ΔΜ͡Όͳ͍͔ͳͱࢥ͍· ͢
  68. None
  69. ͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠