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

すごいGit楽しく学ぼう

 すごいGit楽しく学ぼう

MIXI ENGINEERS
PRO

May 12, 2015
Tweet

More Decks by MIXI ENGINEERS

Other Decks in Programming

Transcript

  1. Learn You a Git
    for Great Good!

    View Slide

  2. ͦ΋ͦ΋ɺGitͬͯ
    ԿͷͨΊʹ͋ΔΜͩΖ͏ʁ

    View Slide

  3. Git͸ɺνʔϜͰͭͷ։ൃʹ
    औΓ૊Ή͜ͱΛՄೳʹ͠·͢ʂ

    View Slide

  4. Git͕ແ͍ͱʜʜ
    Կ͕มΘ͔ͬͨ෼͔Μͳ͍ʂ
    ٸʹಈ͔ͳ͘ͳͬͨΜ͚ͩͲʜʜ
    ࠓ͔Βࢲ͕։ൃ͢ΔͷͰɺΈΜͳ։ൃΛࢭΊͯʂ
    ͜ͷίʔυ୭͕ॻ͍ͨΜͩΖ͏ʁ

    View Slide

  5. ਖ਼௚ਏ͍ʂ

    View Slide

  6. Git͕͋Ε͹ʂ
    ;Ή;Ήɺ͜͏͍ͬͨมߋ͕ՃΘͬͨͷ͔ʂ
    ಈ͔ͳ͘ͳ͚ͬͨͲɺ͙͢ʹલʹ໭ͤͨʂ
    ਺ඦਓͰ΋Ұॹʹ։ൃͰ͖ΔΑʂ
    ͜ͷΫιίʔυΛॻ͍ͨͷ͸ɺ˓˓͞Μ͔ʜʜ

    View Slide

  7. ΈΜͳͰ։ൃͰָ͖͍ͯ͠ʂ
    ✌ Т✌
    ࡾ✌ Т
    ✌ࡾ ✌`Т

    View Slide

  8. w ͱΓ͋͑ͣ࢖ͬͯΈΑ͏ʂ
    w ίϛοτͱϒϥϯνʹ͍ͭͯਖ਼͘͠ཧղ͠Α͏
    w ྺ࢙ΛऔΓࠐΉ
    w མึर͍
    ࠓ೔ͷ༧ఆ

    View Slide

  9. w ͱΓ͋͑ͣ࢖ͬͯΈΑ͏ʂ
    w ίϛοτͱϒϥϯνʹ͍ͭͯਖ਼͘͠ཧղ͠Α͏
    w ྺ࢙ΛऔΓࠐΉ
    w མึर͍
    ࠓ೔ͷ༧ఆ

    View Slide

  10. ࢖ͬͯΈΑ͏ʂͷͦͷલʹ
    $ git config --global user.name "Amy Mikushi"
    $ git config --global user.email "[email protected]"
    Gitʹࣗݾ঺հ
    ͜͜Ͱొ࿥ͨ͠৘ใ͕(JUͷૢ࡞ʹ͍ͭͯճΔʂ

    View Slide

  11. ͸͡ΊͯΈΑ͏
    $ mkdir books
    $ cd books
    $ git init
    GitϦϙδτϦΛ࡞੒͠Α͏
    ϦϙδτϦ͸ɺόʔδϣϯ؅ཧ͢ΔͨΊͷ
    ஷଂݿͷ͜ͱͰ͢

    View Slide

  12. $ find .
    Α͘Ͱ͖·ͨ͠ʂ
    ͜ΕͰbooks

    View Slide

  13. ঢ়ଶͷ֬ೝ
    $ git status
    git

    View Slide

  14. ϑΝΠϧͷ௥Ճ
    Untracked

    View Slide

  15. ௥ՃΛ֬ೝ
    Changes

    View Slide

  16. ͸͡Ίͯͷίϛοτ
    εςʔδϯάΤϦΞʹஔ͍ͨϑΝΠϧΛεφοϓγϣο
    τͱͯ͠ɺGit

    View Slide

  17. εςʔδϯάΤϦΞͱϦϙδτϦ
    Sherlock.txt
    Crusoe.txt
    ࡞ۀσΟϨΫτϦ εςʔδϯάΤϦΞ (JUϦϙδτϦ
    git add
    ίϛοτ͢Δ४උ͕Ͱ͖ͨΒgit

    View Slide

  18. εςʔδϯάΤϦΞͱϦϙδτϦ
    Sherlock.txt
    Crusoe.txt
    ࡞ۀσΟϨΫτϦ εςʔδϯάΤϦΞ (JUϦϙδτϦ
    git add
    ίϛοτ͢Δ४උ͕Ͱ͖ͨΒgit

    View Slide

  19. Sherlock.txt
    Crusoe.txt
    ࡞ۀσΟϨΫτϦ εςʔδϯάΤϦΞ (JUϦϙδτϦ
    git commit
    add

    View Slide

  20. Sherlock.txt
    Crusoe.txt
    ࡞ۀσΟϨΫτϦ εςʔδϯάΤϦΞ (JUϦϙδτϦ
    git commit
    add

    View Slide

  21. ྺ࢙ΛΈΑ͏
    มߋΛอଘͰ͖ΔΑ͏ʹͳΓ·ͨ͠ʂ
    มߋΛίϛοτͱͯ͠ͲΜͲΜੵΈॏͶ͍ͯ͘͜ͱ͕େࣄͰ͢
    ͲΜͳมߋ͖͚ͯͨͬ͠ʜʁͱͳͬͨΒྺ࢙ΛৼΓฦΓ·͠ΐ͏ʂ
    $ git log
    աڈͷมߋ ίϛοτ
    ͕ҰཡͰ͖·͢
    ผͷϑΝΠϧΛ௥Ճ͢ΔίϛοτΛߦ͍ɺ࠶౓

    View Slide

  22. ϦϞʔτϦϙδτϦΛ࢖ͬͯΈΔ
    ಉ͡ঢ়ଶ͕ϦϞʔτʹ΋อଘͰ͖·͢
    ͍ͭͰ΋໭ͤΔ͠ɺଞͷਓ΋Ҿͬுͬͯ͜Ε·͢
    ·ͣ͸ɺGitHubͰϕΞϦϙδτϦΛ࡞੒͠Α͏ʂ
    https://github.com/new
    ϕΞϦϙδτϦ͸࡞ۀ༻σΟϨΫτϦΛ࣋ͨͳ͍
    .gitͷΈͷϦϙδτϦͰ͢

    View Slide

  23. ϦϞʔτϦϙδτϦΛొ࿥͢Δ
    ϕΞϦϙδτϦΛ࡞੒ͨ͠ΒϦϞʔτϦϙδτϦͱͯ͠
    ొ࿥͠Α͏
    $ git remote add origin \
    [email protected]:/books.git
    ొ࿥ͨ͠ϦϞʔτϦϙδτϦ͸ɺ$

    View Slide

  24. खݩͷมߋΛ্͛ͯΈΑ͏
    $ git push -u origin master
    ϦϞʔτϒϥϯνΛࣗಈͰ௥੻͢ΔΑ͏ʹઃఆ͢Δ
    ͔࣍Βpull

    View Slide

  25. ڞಉ։ൃ͜ͱ͸͡Ί
    $ cd ..
    $ git clone [email protected]:/books.git alt_books
    GitΛ࢖͏͜ͱͰෳ਺ਓͰ͔ΜͨΜʹ։ൃͰ͖·͢ʂ
    ࠓ͔Βผਓ ͷؾ࣋ͪ
    ʹͳͬͯମݧͯ͠Έ·͠ΐ͏
    ·ͣ͸ϦϞʔτϦϙδτϦΛखݩʹऔΓࠐΈ·͢
    alt_booksͱ͍͏໊લͰϦϙδτϦΛෳ੡(clone)Ͱ͖
    ͨʂ

    View Slide

  26. ڞಉ։ൃ͜ͱ͸͡Ί
    $ cd alt_books
    $ vim Crusoe.txt
    $ git add Crusoe.txt
    $ git commit
    $ git push
    Ͱ͸ɺalt_booksͰ࡞ۀΛ͍͖ͯ͠·͠ΐ͏
    pushͨ͠ΒɺGitHubͰ֬ೝͯ͠ΈΑ͏ʂ

    View Slide

  27. มߋΛऔΓࠐΉ
    $ cd ../books
    $ git pull
    ଞਓͷߦͬͨ࡞ۀ alt_booksͰߦͬͨ࡞ۀ
    Λ
    booksʹऔΓࠐΜͰΈ·͠ΐ͏
    ͦΕʹ͸pull

    View Slide

  28. มߋΛ֬ೝʂ
    $ vim Sherlock.txt
    $ git diff
    diff

    View Slide

  29. มߋΛ֬ೝʂ1BSU
    $ git add Sherlock.txt
    $ git diff --staged
    ͨͩ୯ʹgit

    View Slide

  30. ݩʹ໭͢
    $ git reset Sherlock.txt
    ૉ੖Β͍͠ʂमਖ਼ՕॴΛ͙͢ʹ֬ೝ͢Δ͜ͱ͕Ͱ͖ΔΑ
    ͏ʹͳΓ·ͨ͠
    ࣍͸ݩʹ໭͢ํ๏Λ֮͑·͠ΐ͏
    addΛऔΓফ͢ʹ͸git

    View Slide

  31. ݩʹ໭͢
    $ vim Sherlock.txt
    $ git checkout -- Sherlock.txt
    ͜ΕͰ޷͖ͳ͚ͩBEEΛͨ͠ΓɺBEEΛऔΓফͨ͠ΓͰ
    ͖·͢
    ࣍͸ϑΝΠϧࣗମΛલճͷίϛοτঢ়ଶʹ໭͢ํ๏Ͱ͢
    ίϛοτͯ͠ͳ͍มߋ͸ফ͑ͪΌͬͯݩʹ໭ͤͳ͍ʂ

    View Slide

  32. ϒϥϯνΛ࡞Ζ͏
    Gitͷ࢖͍ํΛ΄ͱΜͲϚελʔ͠·ͨ͠ʂ
    ࠷ޙʹGitͷϒϥϯνػೳΛֶͼ·͠ΐ͏
    ϒϥϯν͸ɺݱࡏͷίϐʔΛ࡞੒͢ΔػೳͰ͢
    ػೳ௥Ճ΍όάमਖ਼ͷࡍ͸ϒϥϯνΛ੾ͬͯ࡞ۀΛਐΊ·͢
    ੾ͬͨϒϥϯν͔Β͸͍ͭͰ΋ݩͷmasterϒϥϯνʹ໭ͬ
    ͯ͘Δ͜ͱ͕Ͱ͖·͢
    master͸σϑΥϧτͷϒϥϯν໊Ͱ͢

    View Slide

  33. ϒϥϯνΛ࡞Ζ͏
    $ git branch clean_up
    ϒϥϯνΛ੾Δʹ͸ɺgit

    View Slide

  34. ϒϥϯνΛ੾Γସ͑ͯΈΑ͏
    $ git checkout clean_up
    clean_up

    View Slide

  35. ϑΝΠϧͷ࡟আ
    $ git rm '*.txt'
    $ git commit -m "Remove all files"
    clean_up

    View Slide

  36. ϒϥϯνͰߦͬͨ࡞ۀΛऔΓࠐ΋͏
    $ git checkout master
    clean_up

    View Slide

  37. ϒϥϯνͰߦͬͨ࡞ۀΛऔΓࠐ΋͏
    $ git merge clean_up
    clean_up

    View Slide

  38. ϒϥϯνͷ࡟আ
    $ git branch -d clean_up
    ඞཁͷͳ͘ͳͬͨclean_upϒϥϯνΛ࡟আ͠Α͏
    git

    View Slide

  39. ࠷ޙͷpush
    $ git push
    ࠷ޙʹࠓ·ͰߦͬͨมߋΛGitHubʹ΋൓өͤ͞Α͏ʂ
    Git͕࢖͑ΔΑ͏ʹͳͬͨʂ

    View Slide

  40. w ͱΓ͋͑ͣ࢖ͬͯΈΑ͏ʂ
    w ίϛοτͱϒϥϯνʹ͍ͭͯਖ਼͘͠ཧղ͠Α͏
    w ྺ࢙ΛऔΓࠐΉ
    w མึर͍
    ࠓ೔ͷ༧ఆ

    View Slide

  41. ίϛοτͱϒϥϯνͬͯ
    Ͳ͏͍͏࢓૊ΈͳΜͩΖ͏ʁ

    View Slide

  42. ίϛοτͱϒϥϯνΛཧղ͢Δ͜ͱͰ
    GitΛγϯϓϧʹཧղͰ͖·͢

    View Slide

  43. ίϛοτͱ͸ʁ
    ίϛοτ͸༷ʑͳ৘ใΛ͍࣋ͬͯ·͢
    w ϦϏδϣϯ
    w Tree

    View Slide

  44. ίϛοτͱ͸ʁ
    ίϛοτ͸༷ʑͳ৘ใΛ͍࣋ͬͯ·͢
    w ϦϏδϣϯ
    w Tree

    View Slide

  45. ίϛοτʹ͸਌͕͍Δ
    ͭલͷίϛοτͷϦϏδϣϯΛ࣋ͭͷͰίϛοτʹ͸
    ਌͕͍Δʂ

    ৽͍͠ίϛοτ͔Βݹ͍ίϛοτ͸؆୯ʹ୧ΕΔ

    View Slide

  46. ࠷ݹͷίϛοτ·Ͱ୧ΕΔ
    ίϛοτΛ୧͍ͬͯ͘ͱඞͣҰ൪࠷ݹͷίϛοτ·Ͱ
    ୧Γண͚Δʂ
    ࠷ݹ
    ͋ΔͭͷίϛοτΛݟΕ͹ɺͦͷྺ࢙͕෼͔Δ

    View Slide

  47. ίϛοτ͸෼͔͚ͬͨͲ
    ϒϥϯν͸ʁ

    View Slide

  48. ୯ͳΔಛఆͷίϛοτΛࢦͨ͠
    ϙΠϯλͷΑ͏ͳ΋ͷͰ͢ʂ

    View Slide

  49. ϒϥϯν
    σϑΥϧτͷϒϥϯν໊͸master
    ϒϥϯνͷઌ಄Λࢦ͢ϦϑΝϨϯε͸ɺ
    ςΩετͰϦϏδϣϯ SHA-1
    ͕อଘ͞Ε͍ͯ·͢


    View Slide

  50. ϒϥϯν
    ৽ͨͳnewͱ͍͏໊લͷϒϥϯνΛ࡞੒ͯ͠ΈΔ
    $ git branch new


    View Slide

  51. ϒϥϯν
    $ git branch new




    ৽͍͠ͷ͕ग़དྷͨʂ
    ৽ͨͳnewͱ͍͏໊લͷϒϥϯνΛ࡞੒ͯ͠ΈΔ

    View Slide

  52. ϒϥϯνͷجຊ͸͜Ε͚ͩʂ
    ୯ͳΔϙΠϯλͳͷͰɺϒϥϯν໊͕
    ࢖͑Δॴ͸ϦϏδϣϯ͕࢖͑Δ͠
    ͦͷٯ΋વΓ

    View Slide

  53. ϒϥϯνͷࢬ෼͔Ε




    ͜ͷঢ়ଶ͔ΒOFXʹίϛοτ͍ͯ͘͠ͱʜʜ

    View Slide

  54. ϒϥϯνͷࢬ෼͔Ε




    Μʁ

    View Slide

  55. ϒϥϯνͷࢬ෼͔Ε





    ࢬ෼͔Εͨ͠ʂ

    View Slide

  56. ϒϥϯνͷࢬ෼͔Ε
    newϒϥϯν͚ͩมߋ͞Ε
    masterϒϥϯνʹ͸Өڹ͕ͳ͍ʂ






    View Slide

  57. ࢲ͸Ͳ͜ʹ͍ΔΜͰ͠ΐ͏͔ʜʜ
    git

    View Slide

  58. HEADϦϑΝϨϯε







    $ git checkout master

    View Slide

  59. HEADϦϑΝϨϯε







    $ git checkout master

    View Slide

  60. HEADϦϑΝϨϯε
    HEADͷҐஔ͕੾ΓସΘͬͨʂ
    HEAD͕෇͍͍ͯΔϒϥϯν͸ಛघͳಈ͖Λ͢Δ
    ෼͔Γ΍͍͢Α͏ʹ·ͣଞʹϒϥϯνΛ੾ͬͯΈΔ








    $ git branch other

    View Slide

  61. HEADϦϑΝϨϯε
    ͜͜Ͱίϛοτͯ͠ΈΔͱʜʜ








    master

    View Slide

  62. HEADͰࢀর͞Ε͍ͯΔϒϥϯν͸
    ίϛοτ͢ΔͨͼʹҠಈ͢Δ

    View Slide

  63. ίϛοτͱϒϥϯνʹ͍ͭͯ
    ෼͔ͬͨʂ

    View Slide

  64. w ͱΓ͋͑ͣ࢖ͬͯΈΑ͏ʂ
    w ίϛοτͱϒϥϯνʹ͍ͭͯਖ਼͘͠ཧղ͠Α͏
    w ྺ࢙ΛऔΓࠐΉ
    w མึर͍
    ࠓ೔ͷ༧ఆ

    View Slide

  65. ྺ࢙ΛऔΓࠐΉϚʔδͬͯ
    Ͳ͏͍͏࣌ʹ࢖͏ΜͩΖ͏ʁ

    View Slide

  66. ΘΓͱͲ͜Ͱ΋࢖͏ʂ

    View Slide

  67. ɾνʔϜͰ։ൃ͍ͯ͠Δ࣌ʹ
    ଞͷਓͷมߋΛऔΓࠐΉͱ͖
    ɾਓͰ։ൃ͍ͯ͠Δ࣌ʹෳ਺ͷ
    ϒϥϯνΛͭʹ·ͱΊΔͱ͖

    View Slide

  68. ΘΓͱΑ͋͘Δύλʔϯ
    Αʔ͠ɺमਖ਼΋ऴΘͬͨ͠αʔόʹ
    push

    View Slide

  69. push

    View Slide

  70. ͳͥpushͰ͖ͳ͍ʁ








    remote repo my repo
    ͢Ͱʹ৽͍͠
    ίϛοτ͕ʂ

    View Slide

  71. ͜ͷঢ়ଶͰ͸pushͰ͖·ͤΜ
    Ͳͷίϛοτ͕masterϒϥϯνͷ࠷৽͔෼͔Βͳ͘ͳ
    Δ͔ΒͰ͢
    ҎԼͷΑ͏ͳঢ়ଶΛ࡞Δ͜ͱ͸ग़དྷ·ͤΜ







    View Slide

  72. Ͳ͏ͨ͠Β͍͍ͷʁ
    Ұ౓खݩʹremote

    View Slide

  73. มߋΛऔΓࠐΉ








    remote repo my repo
    $ git pull origin master

    View Slide





  74. remote repo
    my repo






    มߋ͕औΓࠐ·Εͨʂ

    View Slide





  75. remote repo
    my repo






    $ git push origin master

    View Slide







  76. remote repo my repo






    pushͰ͖ͨʂ

    View Slide

  77. ΈΜͳͰ։ൃ
    ͭͷϒϥϯνΛผʑʹมߋͨ࣌͠͸ɺ
    ଞਓͷมߋΛϚʔδͯ͠push

    View Slide

  78. ͍Ζ͍Ζͳྺ࢙ͷऔΓࠐΈํ
    ΘΓͱ͍Ζ͍ΖͳॴͰ࢖͏ϚʔδͰ͕͢ɺ
    ࣮͸͍Ζ͍Ζͳྺ࢙ͷऔΓࠐΈํ͕͋Γ·͢ʂ
    • merge

    View Slide

  79. ͍Ζ͍Ζͳྺ࢙ͷऔΓࠐΈํ
    ΘΓͱ͍Ζ͍ΖͳॴͰ࢖͏ϚʔδͰ͕͢ɺ
    ࣮͸͍Ζ͍Ζͳྺ࢙ͷऔΓࠐΈํ͕͋Γ·͢ʂ
    • merge

    View Slide

  80. merge

    View Slide








  81. $ git merge topic --ff
    merge

    View Slide








  82. தͷਓ
    ʮtopicϒϥϯνͬͯmasterͷࠩ෼શ෦
    ɹؚΜͰΔ͠ɺҰॹʹͪ͠Ό͑͹Α͘Ͷʁʯ
    merge

    View Slide

  83. தͷਓ
    ʮϚʔδͨ͠Αʔʯ






    merge

    View Slide

  84. merge

    View Slide

  85. ͍Ζ͍Ζͳྺ࢙ͷऔΓࠐΈํ
    ΘΓͱ͍Ζ͍ΖͳॴͰ࢖͏ϚʔδͰ͕͢ɺ
    ࣮͸͍Ζ͍Ζͳྺ࢙ͷऔΓࠐΈํ͕͋Γ·͢ʂ
    • merge

    View Slide

  86. merge

    View Slide

  87. merge

    View Slide

  88. merge

    View Slide

  89. merge

    View Slide









  90. merge

    View Slide

  91. merge

    View Slide

  92. ͍Ζ͍Ζͳྺ࢙ͷऔΓࠐΈํ
    ΘΓͱ͍Ζ͍ΖͳॴͰ࢖͏ϚʔδͰ͕͢ɺ
    ࣮͸͍Ζ͍Ζͳྺ࢙ͷऔΓࠐΈํ͕͋Γ·͢ʂ
    • merge

    View Slide

  93. merge

    View Slide









  94. $ git merge topic --squash
    merge

    View Slide

  95. தͷਓ
    ʮtopicͷมߋ಺༰Λѹॖ͠Α͏ʂʯ
    தͷਓʮͭͷύονʹѹॖͰ͖ͨʂʯ


    merge

    View Slide









  96. merge

    View Slide

  97. merge

    View Slide

  98. merge

    View Slide

  99. merge

    View Slide

  100. Ϛʔδ͢Δ಺༰Λѹॖ͠ɺࠩ෼Λݱࡏͷίϛοτʹ
    ৐͚ͬΔʂ
    ࠩ෼͸εςʔδϯάΤϦΞʹ৐ͤΒΕΔ͚ͩͳͷͰɺ
    ίϛοτ͸ࣗ෼Ͱ΍Δඞཁ͕͋Δ
    merge

    View Slide

  101. ͍Ζ͍Ζͳྺ࢙ͷऔΓࠐΈํ
    ΘΓͱ͍Ζ͍ΖͳॴͰ࢖͏ϚʔδͰ͕͢ɺ
    ࣮͸͍Ζ͍Ζͳྺ࢙ͷऔΓࠐΈํ͕͋Γ·͢ʂ
    • merge

    View Slide

  102. ϦϕʔεͬͯԿʁ
    ϚʔδͱԿ͕ҧ͏ͷʁ

    View Slide

  103. rebase







    '
    ͜Ε͕Ϧϕʔεʂ

    View Slide

  104. ࣮ࡍϦϕʔε͕Ͳ͏͍͏͜ͱΛ
    ͢Δͷ͔ͭͣͭݟ͍ͯ͜͏

    View Slide

  105. rebase
    topicϒϥϯνΛrebase͍ͨ͠








    View Slide

  106. rebase








    $ git rebase master

    View Slide

  107. '
    rebase
    ·ͣίϛοτͷมߋ಺༰ΛͦΕͧΕύονʹ͢Δ

    View Slide

  108. rebase
    topicϒϥϯνΛmasterͱ
    ಉ͡ҐஔʹҠಈͤ͞Δ









    View Slide

  109. rebase
    ࡞੒͓͍ͯͨ͠ύονΛͭͣͭ
    ॱʹద༻ͯ͠ίϛοτ͍ͯ͘͠







    View Slide

  110. rebase

    ࠩ෼Λద༻ͯ͠ίϛοτ







    View Slide

  111. rebase
    '

    View Slide

  112. rebase
    '

    View Slide

  113. rebase
    '

    View Slide

  114. ର৅ͷϒϥϯνͷ্ʹݱࡏͷϒϥϯνΛ࡞Γ௚͠·͢
    rebaseʹΑͬͯ࡞ΒΕͨίϛοτ͸ಉ͡಺༰͚ͩͲผͷ
    ίϛοτʹͳΔͷͰ஫ҙͰ͢ʂ
    git

    View Slide

  115. ผͷίϛοτʹͳΔ
    w ϦϏδϣϯ
    w Tree

    View Slide

  116. ΍ͬͯ͸͍͚ͳ͍rebase
    ίϛοτͷ৘ใ͕มΘͬͯ͠·͏ͷͰɺ
    طʹpush͞Ε͍ͯΔϒϥϯνΛrebaseͯ͠͸͍͚·ͤΜ
    ଞਓ͕push

    View Slide

  117. w ͱΓ͋͑ͣ࢖ͬͯΈΑ͏ʂ
    w ίϛοτͱϒϥϯνʹ͍ͭͯਖ਼͘͠ཧղ͠Α͏
    w ྺ࢙ΛऔΓࠐΉ
    w མึर͍
    ࠓ೔ͷ༧ఆ

    View Slide

  118. Gitͷ৭ʑͳٕΛֶ΅͏ʂ

    View Slide

  119. ͜Ε͚ͩ͸֮͑Α͏
    $ git

    View Slide

  120. gitίϚϯυͰ͸ɺGitͷΑ͘࢖͏ίϚϯυΛҰཡ͢Δ
    ͜ͱ͕ग़དྷ·͢
    ίϚϯυͷৄࡉͳઆ໌Λݟ͍ͨ࣌͸ɺmanΛར༻͠·
    ͠ΐ͏
    ྫ͑͹ɺmergeίϚϯυʹ͍ͭͯৄ͘͠஌Γ͍ͨͱ͖͸
    ϋΠϑϯͰܨ͛ͯೖྗ͠·͢
    $ man git-merge
    ͜Ε͚ͩ͸֮͑Α͏

    View Slide

  121. git

    View Slide

  122. git

    View Slide

  123. Ϛʔδ͢Δ࣌ʹ(JU͚ͩͰ͸ղܾͰ͖ͳ͍͜ͱ͕͋Γ·͢
    ͦΕ͕ίϯϑϦΫτͰ͢
    ίϯϑϦΫτͨ͠৔߹͸ਓ͕ؒղܾ͢Δඞཁ͕͋Γ·͢
    ίϯϑϦΫτ͸΋͏͍΍ͩ
    ೣ͸ղܾ͠ͳ͍

    View Slide

  124. ίϯϑϦΫτͨ͠ϑΝΠϧ͸ɺboth

    View Slide

  125. ίϯϑϦΫτΛमਖ਼ͯ͠ɺίϛοτ͠·͢
    ίϯϑϦΫτ͸΋͏͍΍ͩ
    b
    <<<<<<< HEAD
    ccc
    =======
    c
    >>>>>>> topic
    d
    b
    ccc
    d
    ίϯϑϦΫτղܾ࣌ʹɺίϯϑϦΫτղܾҎ্ͷ͜ͱΛͯ͠͸
    ͍͚·ͤΜ
    Ͳͷ਌ʹ΋ݱΕͳ͍มߋΛ͍ͯ͠ΔϚʔδΛevil

    View Slide

  126. git

    View Slide

  127. Φϓγϣϯͳ͠ͷgit

    View Slide

  128. git

    View Slide

  129. ͦΕʹ͸git

    View Slide

  130. Ͳ͏͠Α͏΋ͳ͘ͳͬͨ
    ؒҧͬͯϒϥϯνΛফͯ͠͠·ͬͨ
    ద౰ʹreset

    View Slide

  131. git

    View Slide

  132.  ㅤ ㅤ ㅤ

    View Slide

  133. גࣜձࣾϛΫγΟͰ΋
    ΄ͱΜͲͷ෦ॺ͕࢖͍ͬͯ·͢

    View Slide

  134. GitHubͷPull

    View Slide

  135. ྡͷਓͷGitHubͷϓϩδΣΫτΛϑΥʔΫ͠·͢
    ϑΥʔΫͨ͠ϦϙδτϦΛखݩʹΫϩʔϯ͠·͢
    ࡞ۀ༻ϒϥϯνΛ࡞੒͠·͢
    มߋΛՃ͑ͯίϛοτͯ͠ϓογϡ͠·͢
    GitHub͔ΒPull

    View Slide

  136. w (JU#PPL
    w ͜Θ͘ͳ͍(JU
    w (JUͷ࢓૊Έ
    ͖ͤ͜ͷٕज़೔ه
    w ݟ͑ͳ͍νΧϥʲ຋༁ʳ(JUΛϘτϜΞοϓ͔Βཧղ͢Δ
    w $PEF4DIPPM5SZ(JU
    ࢀߟจݙ
    ΈΜͳ΋ಡΜͰΈΑ͏ʂ

    View Slide