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

第1回 Git講座

第1回 Git講座

あくあたん工房での第一回 Git講座の講義資料です。add・commitしてからリモートへpush、プルリクエストがマージされた後、ローカルでのpullする作業までを解説しています。

Pudding

March 18, 2018
Tweet

More Decks by Pudding

Other Decks in Programming

Transcript

  1. ໨࣍  ։ൃʹ͓͚Δόʔδϣϯ؅ཧͷେ੾͞  (JUͷ֓ཁ  (JUϗεςΟϯάαʔϏεʹ͍ͭͯ  ࠓ೔΍Δ͜ͱͷઆ໌ 

    (JUͷ֤ૢ࡞Λަ࣮͑ͯश Ὂ DMPOF DIFDLPVU BEE DPNNJU  QVTI QVMM GFUDIʜ  HJUΫϥΠΞϯτͷ঺հ
  2. όʔδϣϯ؅ཧ҉ࠇ࣌୅ʢʣ ˔ ιʔείʔυͷมߋΛ
 ίϝϯτͰ؅ཧ Ὂ มߋऀ Ὂ มߋ೔ͳͲ ˔ มߋ͕෼͔Βͳ͍ɾ໭ͤͳ͍

    Ὂ ݩͷίʔυ͸Ͳ͏ͩͬͨͷ͔ Ὂ ॻ͖׵͑ΒΕͨίʔυ͸
 ໭ͬͯ͜ͳ͍ import os # 2018/1/18 ύεΛදࣔ print(os.path) if "/usr/bin" in os.path: # 2018/1/20 มߋ print("Loaded") # 2018/1/22 ޙͰ࣮૷ # hoge() # 2018/1/15 ফͨ͠ # pudding: ͜͜Α͘ͳ͍ end()
  3. ֓ཁ ˔ ෼ࢄܕόʔδϣϯ؅ཧγεςϜ ˔ -JOVT5PSWBMETΒʹΑͬͯ࡞ΒΕͨʢ೥ʣ Ὂ -JOVYΧʔωϧͷΑ͏ͳڊେͳίʔυΛޮ཰Α͘
 ؅ཧɾ։ൃ͢ΔͨΊ Ὂ ෳ਺ਓ։ൃΛָʹ͢ΔͨΊ

    ˔ (JU͸࠷ॳͷόʔδϣϯ؅ཧγεςϜͰ͸ͳ͍ Ὂ -JOVYΧʔωϧ΋౰ॳ͸#JU,FFQFSΛ࢖͍ͬͯͨ Ὂ ଞʹ༗໊ͳ΋ͷ
 ˠ$74 4VCWFSTJPO .FSDVSJBM #B[BBSͳͲ
  4. (JUϗεςΟϯάαʔϏε ˔ (JUͷϦϞʔτϦϙδτϦΛ
 ఏڙ͢ΔαʔϏε Ὂ! (JUIVC Ὂ" (JU-BC Ὂ# #JU#VDLFU

    ˔ ʮ(JUΛ࢖͏ʯ
 ˠʮόʔδϣϯ؅ཧ͢Δʯ ˔ ʮ(JUIVCΛ࢖͏ʯ
 ˠʮϦϞʔτϦϙδτϦͱͯ͠(JUIVCΛ࢖͏ʯ
  5. ԋश ˔ νʔϜ։ൃͷྲྀΕΛମݧ  DMPOF  BEE DPNNJU CSBODI 

    QVTI  QVMMSFRVFTU  ϨϏϡʔɾNFSHF  GFUDIɾQVMM  ֬ೝ ˔ ͋͋ͨ͘Μ޻๪ެࣜ8FC ϖʔδͷϓϩϑΟʔϧΛ
 ߋ৽͢Δ
  6. (JUͷ֬ೝ ˔ ୺຤Λ։͘ Ὂ .BDλʔϛφϧͳͲ Ὂ 8JOEPXT(JU#BTI ˔ ৭ʑ֬ೝ͓ͯ͘͠ Ὂ

    (JUͷόʔδϣϯ Ὂ ΧϨϯτσΟϨΫτϦ $ git ——version git version 2.15.1.windows.2 $ pwd /path/to/home # ԋश༻σΟϨΫτϦ࡞੒ $ mkdir git-seminar $ cd git-seminar
  7. (JUͷॳظઃఆ # ઃఆ $ git config ——global user.name “ͳ·͑” $

    git config —-global user.email “Ί͋Ͳ” ˔ Ϣʔβ໊ͱ͔Λઃఆ Ὂ DPNNJUͷཤྺʹදࣔ͞ΕΔ໊લͱϝʔϧΞυϨε Ὂ HJUIVCʹొ࿥ͨ͠΋ͷͰྑ͍ͱࢥ͏ ˔ QVCMJDͳϦϙδτϦͷ৔߹ɺશੈքʹެ։͞Εͯ
 ͍ΔͷͰɺݸਓ৘ใ஫ҙ ˔ ΦϓγϣϯͰϦϙδτϦ͝ͱʹઃఆͰ͖Δ ——local
  8. ˔ (JUͰ͸มߋΛDPNNJUͱ͍͏୯ҐͰอଘ͢Δ Ὂ ϑΝΠϧͦͷ΋ͷΛอଘ͢ΔΘ͚Ͱ͸ͳ͍ Ὂ εφοϓγϣοτΛͱΔˠ༰ྔͷઅ໿ʹͳΔ ˔ ʮݱࡏͲͷDPNNJUΛࢦ͍ͯ͠Δ͔ʯͰϑΝΠϧͷ ঢ়ଶ͕؅ཧ͞Ε͍ͯΔ Ὂ

    ݱࡏࢦ͍ͯ͠Δ࠷৽ͷDPNNJUΛͱݺͿ ˔ DPNNJUʹ͸ܻͷҰҙͳϋογϡ஋͕༩͑ΒΕΔ ˔ DPNNJU͸࿈ଓϦετͷΑ͏ʹͳ͍ͬͯΔ Ὂ DPNNJUࣗ਎͕લͷDPNNJU΁ͷϙΠϯλʢܻ ͷҰҙͳϋογϡ஋ʣΛ͍࣋ͬͯΔ commit HEAD
  9. ˔ ৽͘͠ϑΝΠϧΛεςʔδʹ௥Ճ͢ΔίϚϯυ ˔ εςʔδͱ͸ʜʁ Ὂ ϦϙδτϦʹ൓ө͢ΔલͷϑΝΠϧมߋҰཡ Ὂ ͜͜ʹ௥Ճ͞Ε͍ͯͳ͍෺͸DPNNJU͞Εͳ͍ add $

    git add user.html $ git status On branch master Your branch is up-to-date with ‘origin/master'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: user.html
  10. ˔ εςʔδʹ্͕͍ͬͯΔมߋΛϦϙδτϦ΁൓ө Ὂ ৽͘͠࡞੒ͨ͠΋ͷ͸͓ͯ͘͜͠ͱ Ὂ طʹϦϙδτϦʹؚ·Ε͍ͯΔϑΝΠϧ΁มߋΛՃ ͑ͨͱ͖ˠ ˔ ίϛοτϝοηʔδ͸Θ͔Γ΍͘͢ Ὂ

    ϑΝΠϧΛ௥Ճͨ͠ˠzBEEIPHFz Ὂ ϑΝΠϧΛߋ৽ͨ͠ˠzVQEBUFGVHBzͳͲ $ git commit -m “add test_user.html” [master 3ad5b42] add test_user.html 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test_user.html commit add git commit -a -m “ίϛοτϝοηʔδ”
  11. branch ˔ Ұ࿈ͷDPNNJUʹର͠෼ذΛ࡞Δ͜ͱ͕ग़དྷΔ Ὂ ෼ذ఺Λ࡞੒͠ϒϥϯνΛ࡞Δ͜ͱ
 ˠʮϒϥϯνΛ੾Δʯͱ͍͏ ˔ ϒϥϯνͷਖ਼ମ͸ʮ͋Δϒϥϯν໊ͷλά͕෇͍ͨ Ұ࿈ͷDPNNJUͷ͏ͪ࠷৽ͷ΋ͷ΁ͷϙΠϯλʯ ˔

    ࠷΋جຊͷϒϥϯνˠNBTUFS ˔ ϒϥϯν͸ෳ਺੾Δ͜ͱ͕Ͱ͖Δ Ὂ ྫɿ։ൃஈ֊͝ͱʢEFWFMPQ SFMFBTFʜʣ Ὂ ྫɿػೳ͝ͱʢGFBUVSFIPHF GFBUVSFGVHBʜʣ ˔ جຊతʹԿ͔͢Δલʹ͸ϒϥϯνΛ੾Δ
  12. checkout $ git checkout page/{{name}} Switched to branch ‘page/{{name}}' $

    git branch master * page/{{name}} ˔ ϒϥϯνͷҠಈʹओʹ࢖ΘΕΔ Ὂ ಛఆͷίϛοτͷϑΝΠϧΛ෮ݩ͢Δػೳ΋͋Δ ˔ ࡞੒ࡁΈͷϒϥϯν΁Ҡಈ͢Δଞɺϒϥϯν࡞੒ͱ ಉ࣌ʹDIFDLPVU͢Δ͜ͱ΋Ͱ͖Δ git checkout -b page/{{name}}
  13. branch $ git add member/{{name}}.html $ git commit -m “add

    {{name}} page” ˔ QBHF\\OBNF^^ϒϥϯν΁DPNNJU͞Εͨ ˔ )&"%͕Ҡಈ͠࠷৽ͷDPNNJUΛࢦ͢ Ὂ NBTUFS͸มԽ͠ͳ͍
  14. ˔ ϩʔΧϧϦϙδτϦͷมߋΛϦϞʔτϦϙδτϦ΁ ൓ө͢Δ ˔  Ὂ PSJHJOϦϞʔτϦϙδτϦͷผ໊ʢσϑΥϧτʣ Ὂ QVTI͢Δઌͷϒϥϯν໊ʹ஫ҙ ˔

    ͜͜Ͱ͸ෆཁ͕ͩɺ৽نͰQVTIΛߦ͏৔߹ɺϦϞʔ τϦϙδτϦͷΞυϨεΛ௥Ճ͢Δඞཁ͕͋Δ push git push origin {{ϒϥϯν໊}} $ git push origin page/{{name}}
  15. checkout $ git checkout master Switched to branch ‘master' $

    git branch * master page/{{name}} ˔ ࡞ۀ͕ऴΘͬͨΒݩͷϒϥϯν΁໭Δ Ὂ ࣍ͷϒϥϯνΛ೿ੜϒϥϯν͔Β੾Βͳ͍Α͏ʹ ˔ DPNNJU͍ͯ͠ͳ͍มߋ͕͋Δͱ໭Εͳ͍ Ὂ جຊతʹશͯDPNNJU͔ͯ͠Β໭Ζ͏ Ὂ Ͳ͏ͯ͠΋ඞཁͳ৔߹͸TUBTI͕࢖͑Δ
  16. ˔ ϦϞʔτϦϙδτϦͷมߋΛϩʔΧϧϦϙδτϦ΁ ൓ө͢ΔίϚϯυ Ὂ 8PSLJOH%JSFDUPSZ΁ͷมߋ͸ߦΘͳ͍ ˔ ɹ Ὂ औಘͨ͠มߋΛ࣮ࡍʹ൓ө͢Δ Ὂ

    PSJHJOͷ\\ϒϥϯν໊^^ΛϩʔΧϧͷ\\ϒϥϯν໊^^ ΁൓ө͢Δͱ͍͏ҙຯ fetch git merge origin/{{ϒϥϯν໊}} $ git fetch # ͜͜Ͱ͸masterΛϚʔδ͢Δ $ git merge origin/master
  17. ֬ೝ ˔ ϩʔΧϧ΁൓ө͞Ε͔ͨ֬ೝ͢Δ  NBTUFSϒϥϯνΛνΣοΫΞ΢τ    NFNCFS\\OBNF^^IUNMΛϒϥ΢βͰ։͘ ˔

    Ҏ্͕جຊతͳෳ਺ਓ։ൃͷྲྀΕʹͳΔ śŧœʙʢů ьʆ ůʙ̇ git fetch && git merge origin/master
  18. (JUIVCͷ࢖͍ํ΋ؚΊͨྲྀΕ  ϦϙδτϦΛDMPOFʢ·ͨ͸࡞੒ʣ  JTTVFΛݐͯΔPSׂΓ౰ͯΒΕͨJTTVFΛ֬ೝ  ϒϥϯνΛ੾Δ  มߋΛBEE DPNNJU

     ϦϞʔτϦϙδτϦ΁QVTI  QVMMSFRVFTUΛൃߦɺϨϏϡʔɾमਖ਼ޙNFSHF  ʢJTTVFΛด͡Δʣ  ݩͷϒϥϯνΛDIFDLPVU  GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛ൓ө  ֬ೝ