• Like
  • Save
こわくないプルリク
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

こわくないプルリク

  • 2,737 views
Published

Github の Pull Request にフォーカスした Overview. …

Github の Pull Request にフォーカスした Overview.
kanazawa.rb meetup 10 発表資料。

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,737
On SlideShare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
0
Comments
0
Likes
7

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. こわくないプルリクPull Request is not afraid2013.06.14 - kanazawa.rb #10
  • 2. Githubhttp://github.com
  • 3. Pull Request
  • 4. Pull Request
  • 5. なにするもの?自分のコードを取り込んでもらう手続き
  • 6. こわいの?迷惑をかける可能性があるのでちょっとびびる
  • 7. こわいの?こわくはない(迷惑の中身を知れば)
  • 8. Lets Start
  • 9. ルール• 分岐元が同じブランチどうしで使える• 以上
  • 10. Fork は?Fork は必須ではないむしろ一人でもできる
  • 11. masterworkAAB1. checkout -b work2. commit
  • 12. AABマージしてmasterwork1. checkout -b work2. commit
  • 13. AABいいよB3. mergemasterwork1. checkout -b work2. commit
  • 14. Shared Repository Model• 共用リポジトリで利用• Collaborators• Organizations
  • 15. ABBA B4. pushA1. clone5. mergemasterwork2. checkout -b work3. commit
  • 16. Fork & Pull Model• User 間で利用
  • 17. A BA1. forkBA BA6. pullmasterworkmaster5. push2. clone3. checkout -b work4. commit
  • 18. Send Pull Request
  • 19. Send Pull Request
  • 20. Send Pull Request
  • 21. Send Pull Request
  • 22. Receive Pull Request
  • 23. Receive Pull Request
  • 24. Merge Pull Request
  • 25. Merge Pull Request
  • 26. まったく簡単だ
  • 27. 迷惑パターン
  • 28. 迷惑パターン• Pull Request 後のコミット• コンフリクト• 大量のコミット
  • 29. Pull Request 後のコミット• Pull Request の対象はブランチ• クローズ前に追加コミットすると• Pull Request の対象に含まれてしまう• Pull Request 先に Notification が飛ぶ• コードレビュー&修正反映の用途に対応するため
  • 30. ABA B4. pushA1. clonemasterwork2. checkout -b work3. commit
  • 31. ABA B4. pushA1. clonemasterwork2. checkout -b work3. commitCCDD5. commit 7. commit6. push 8. push
  • 32. Pull Request 後のコミット• コードレビュー目的• まったく問題ない利用法• 別機能の開発目的• 問題のある(迷惑な)利用法• 別ブランチで作業をすることで解決
  • 33. コンフリクト• 元ソースの変更に追従していないと発生する• こまめな pull & rebase で解決
  • 34. ABXA B4. pushA1. clone5. mergemasterwork2. checkout -b work3. commitcommit
  • 35. BmasterABXA6. push1. clone7. mergemasterwork2. checkout -b work3. commitBBX4. pullAcommitX5. rebase
  • 36. A XA1. forkBA BA6. pullmasterworkmaster5. push2. clone3. checkout -b work4. commitcommit
  • 37. B5. rebasemasterA XA1. forkBA XA8. pullmasterworkmaster7. push2. clone3. checkout -b work4. commitcommitBX5. pullB
  • 38. B5. rebasemasterA XA1. forkBA XA8. pullmasterworkmaster7. push2. clone3. checkout -b work4. commitcommitBX5. pullB
  • 39. Tips : Fork 元から pull1. git remote add upstream https://github.com/<org>/<rep>.git2. git checkout master3. git pull upstream master
  • 40. B5. rebasemasterA XA1. forkBA XA8. pullmasterworkmaster7. push2. clone3. checkout -b work4. commitcommitBX5. pullB
  • 41. Tips : rebase ? merge ?• merge ではなく rebase• 後述のコミットの集約を実現するため• rebase 前にブランチを push していた場合• rebase 後に push する際は -f オプションが必要• rebase の功罪もあり merge 派もいる• コミットの集約はしない運用
  • 42. 大量のコミット• コミット数が大量にある Pull Request• コーディング作業時に細かにコミットしていればよくある状況
  • 43. A PA B4. pushA1. clone5. mergemasterwork2. checkout -b work3. commiiiiiiiiiiitsBBBBBBBBBBBBBBPBBBBBBBBBBBBBBBPPPPPPPPPPPPPPP
  • 44. 大量のコミット• Pull Request 先でのコミットログ肥大化• 差分を確認するのが困難になる• rebase -i で1コミットにまとめることで解決1. git checkout work2. git rebase -i master3. pick, squash, squash, squash...
  • 45. AA5. pushA1. clone6. mergemasterwork3. commiiiiiiiiiiitsBPPPP2. checkout -b work4. rebase -i (squash)
  • 46. Tips : Pull Request Branch• 作業用ブランチの履歴を残したい場合• Pull Request 専用ブランチを作成する1. git checkout work2. git checkout -b pr-work3. git rebase -i master4. pick, squash, squash, squash...
  • 47. Conclusion• Pull Request は怖くない• 機能毎のブランチング• こまめな pull & rebase• コミットの集約(rebase -i)
  • 48. Conclusion• Pull Request は怖くない• 機能毎のブランチング• こまめな pull & rebase• コミットの集約(rebase -i)"絶対" のルールはない(なにがおこるか把握して使えばよい)
  • 49. まずは自分のリポジトリでブランチさえ切ればすぐ試せる!
  • 50. Thank youTomokazu Kiyoharahttp://github.com/kiyoharahttp://facebook.com/tomokazu.kiyohara
  • 51. Extra• http://blog.qnyp.com/2013/05/28/pull-request-for-github-beginners/• http://kik.xii.jp/archives/179• http://d.hatena.ne.jp/hnw/20110528