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

About Git at Cookpad Summer Intern 2016 day1

About Git at Cookpad Summer Intern 2016 day1

MOROHASHI Kyosuke

August 12, 2016
Tweet

More Decks by MOROHASHI Kyosuke

Other Decks in Programming

Transcript

  1. ‣ Git is a free and open source distributed version

    control system designed to handle everything from small to very large projects with speed and efficiency. ‣ https://git-scm.com/ (JU 
  2. ‣ Git is a content-addressable filesystem. Great. ‣ see https://git-scm.com/book/en/v2/

    | Section 10.2 ‣ …Ͳ͏͍͏͜ͱͳͷ? (JUͷϦϏδϣϯ؅ཧ 
  3. $ git clone [email protected]:moro/fizz-buzz-git.git $ git log --oneline c827de7 Add

    note 99c0455 Init FizzBuzz $ git cat-file -p 99c0455 tree 4ddd72269bffbe854007323f6b753e47dd3498ae author moro <[email protected]> 1466746090 +0900 committer moro <[email protected]> 1466746090 +0900 Init FizzBuzz $ git cat-file -p 4ddd72269bffbe854007323f6b753e47dd3498ae 100644 blob fb738ec4422280fa0938c1cf2363f244168ffa5d fizz_buzz.rb $ git cat-file -p fb738ec4422280fa0938c1cf2363f244168ffa5d 1.upto(100).each do |n| if (n % 15).zero? puts 'FizuBazu' ... DPNNJUUSFF ϝλσʔλ 
  4. $ git log --oneline c827de7 Add note 99c0455 Init FizzBuzz

    $ git cat-file -p c827de7 tree 0b6d5f879bab3bdb4856c67a908d430f0bb3f18d parent 99c045537a1deb673a70c72bebbd9a91490068b0 author moro <[email protected]> 1466746241 +0900 committer moro <[email protected]> 1466746241 +0900 Add note $ git cat-file -p 0b6d5f879bab3bdb4856c67a908d430f0bb3f18d 100644 blob 63d8ebbbad7040256bd8f4d12a51df27e75888ce README.md 100644 blob fb738ec4422280fa0938c1cf2363f244168ffa5d fizz_buzz.rb DPNNJUUSFF ϝλσʔλ 
  5.  99c0455 c827de7 4ddd7226 0b6d5f87 fb738ec44 fb738ec44 63d8ebbba 2016-06-24 14:30:41

    Add note 2016-06-24 14:28:10 Init FizzBuzz README.md fizz_buzz.rb fizz_buzz.rb 1.upto(100).each do if (n % 15).zero? puts 'FizuBazu' 1.upto(100).each do if (n % 15).zero? puts 'FizuBazu' FizzBuzz example to commit tree blob parent
  6.  99c0455 c827de7 4ddd7226 0b6d5f87 fb738ec44 63d8ebbba 2016-06-24 14:30:41 Add

    note 2016-06-24 14:28:10 Init FizzBuzz README.md fizz_buzz.rb fizz_buzz.rb 1.upto(100).each do if (n % 15).zero? puts 'FizuBazu' FizzBuzz example to commit tree blob parent
  7.  99c0455 c827de7 4ddd7226 0b6d5f87 fb738ec44 63d8ebbba 2016-06-24 14:30:41 Add

    note 2016-06-24 14:28:10 Init FizzBuzz README.md fizz_buzz.rb fizz_buzz.rb 1.upto(100).each do if (n % 15).zero? puts 'FizuBazu' FizzBuzz example to commit tree blob parent
  8.  A2 A1 A3 A4 B2 B1 B3 X A/HEAD

    B2' B1' B3' B/HEAD working copy ແ໊ϒϥϯν A4ͷ্ʹB1, B2, B3ͱಉ౳ͷมߋΛద༻͠ɺ ͦΕ͕ϒϥϯνBʹͳΔ $ git rebase A
  9.  A2 A1 A3 A4 X A/HEAD B2' B1' B3'

    B/HEAD A3,4 B1'' B3'' ແ໊ϒϥϯν ͜ͷ৔߹΋ɺ౷߹࡟আͨ͠ίϛοτΛ ى఺Xͷ্ʹੵΈॏͶͨ৽ͨͳίϛοτ͕Ͱ͖ɺ ϒϥϯνBͷHEAD͕ߋ৽͞ΕΔɻ B2 B1 B3 ͖ͬ͞ͷ ແ໊ϒϥϯν $ git rebase -i X
  10. $ git push moro 12345678:topic-a QVTIͷྫ  ‣ ϩʔΧϧͷϦϙδτϦDPNNJU͔ΒḷΕΔཤྺΛ ‣

    NPSPͱ͍͏໊લͷϦϞʔτϦϙδτϦͷ ‣ UPQJDBϒϥϯνʹૹΔ 
  11. $ git remote show origin * remote origin Fetch URL:

    [email protected]:moro/clock.git Push URL: [email protected]:moro/clock.git HEAD branch: master Remote branch: master tracked Local ref configured for 'git push': master pushes to master (up to date) "remote" ͷϦϙδτϦ...? ‣ ʮͷ໊લͷϦϞʔτϦϙδτϦʯ 
  12. $ git pull origin QVMMGFUDI NFSHF ‣ ϦϞʔτϦϙδτϦ͔ΒGFUDI͠ɺNFSHF͢Δ ‣ ࡞ۀίϐʔ͕มߋ͞ΕΔ

    ‣ ׳ΕΔ·Ͱ͸͓͢͢Ί͠ͳ͍ ‣ pull --rebase ͢ΔͱGFUDI SFCBTF ‣ ׳ΕΔ·Ͱ͸ϚδͰ͓͢͢Ί͠ͳ͍ 
  13. 

  14.  cookpad/app working copy $ git fetch origin $ git

    checkout origin/master
 -b topic $ git add ... $ git commit -m '' $ git push -u origin topic commit commit clone fetch push FH(JU)VCqPXͱݺ͹Ε͍ͯΔ΋ͷ
  15.  cookpad/app - cookpad/app:topic working copy $ git fetch origin

    $ git checkout origin/master
 -b topic $ git add ... $ git commit -m '' $ git push -u origin topic commit commit clone fetch push
  16.  cookpad/app - cookpad/app:topic working copy $ git fetch origin

    $ git checkout origin/master
 -b topic $ git add ... $ git commit -m '' $ git push -u origin topic commit commit clone fetch push pull request
  17.  cookpad/app - cookpad/app:topic working copy $ git fetch origin

    $ git checkout origin/master
 -b topic $ git add ... $ git commit -m '' $ git push -u origin topic commit commit clone fetch push pull request ‣ มߋ͍ͯ͠Δ࠷தʹɺଞऀͷมߋͱিಥ͠ͳ͍؀ڥ ‣ มߋ಺༰ΛɺνʔϜͰϨϏϡʔ͢Δ࢓૊Έ ‣ ։ൃϨϏϡʔ׬ྃͨ͠มߋΛɺத৺ͷ
 ϦϙδτϦʹద༻͢Δ࢓૊Έ ‣ த৺ϦϙδτϦʹೖͬͨ
 ଞऀͷมߋΛऔಘ͢Δ࢓૊Έ
  18.  cookpad/app working copy $ git fetch origin $ git

    remote add moro git@.... $ git checkout origin/master
 -b topic $ git add ... $ git commit -m '' $ git push moro topic commit commit clone fetch push pull request moro/app - moro/app:topic
  19. 1. [email protected]:moro/fizz-buzz-git.gitΛDMPOF͠ͳ͍͞ 2. p[[@CV[[SCΛ UZQP͸ͦͷ··Ͱ ΋ͬͱྑ͍ίʔυʹॻ͖׵͑ɺDPNNJU͠ͳ͍͞ 3. PSJHJOpYUZQPϒϥϯνΛϚʔδ͠ͳ͍͞ ‣ ίϯϑϦΫτ͢Δ͸ͣͳͷͰɺͦΕΛղফ͠ͳ͍͞

    4. ϒϥ΢βͰhttps://ghe.example.com/moro/fizz-buzz-gitΛ։͖ɺ
 ϑΥʔΫ͠ͳ͍͞ 5. ϑΥʔΫޙʹग़དྷͨࣗ෼ͷϦϙδτϦΛϦϞʔτͱͯ͠ొ࿥͠ͳ͍͞ɻ͜ͷͱ͖ɺ44)ͷ 63-Λ࢖͏͜ͱɻ 6. ͰϚʔδͨ͠಺༰ΛϑΥʔΫͨ͠ϦϙδτϦʹQVTI͠ͳ͍͞ ࣮श෼ 
  20. ‣ 1SP(JUCPPL ‣ ެࣜαΠτʹͯɺॻ੶ͷ׬શ൛ ๜༁෇͖ ͕͋ΔɻҰಡ͢ΔͱΑ͍ɻ ‣ https://git-scm.com/book/ja/v2 ‣ ʲ຋༁ʳ(JUΛϘτϜΞοϓ͔Βཧղ͢Δ

    ‣ ࠓ೔΍ͬͨΑ͏ʹDPNNJUΦϒδΣΫτΛ௨ͯ͡(JUΛཧղ͢Δهࣄɻ
 ݸਓతʹ͸ͱͯ΋໾ʹཱͬͨ ‣ http://keijinsonyaban.blogspot.jp/2011/05/git.html ‣ લ৬ͷษڧձͰಉ͡Α͏ͳࢿྉΛ࡞ͬͯ·ͨ͠ɻ΍͸ΓDPNNJUͷղઆ͕ଟ͍ ‣ https://speakerdeck.com/moro/my-mental-model-about-git ͋ΘͤͯಡΈ͍ͨ