コミュ障のためのPull Request 〜そしてプルリク充へ〜

2,387 views
2,292 views

Published on

Pull Requestするときにもうつらい思いをしないためのことをまとめたスライド
某勉強会資料

Published in: Engineering

コミュ障のためのPull Request 〜そしてプルリク充へ〜

  1. 1. コミュ障のための Pull Request
  2. 2. –僕 アッ…良いPull Requestに言葉はイ、要らぬ
  3. 3. なるべくいいかんじに Pull Requestをして コミュニケーションでつらい思いをしないために
  4. 4. あなたのコードはどこから? Master Branch にPushできる 複数人で
 開発している リポジトリ共有式 Pull Request fork式 Pull Request yes no yes 普通に Commit no
  5. 5. あなたのコードはどこから? Master Branch にPushできる 複数人で
 開発している リポジトリ共有式 Pull Request fork式 Pull Request yes no yes 普通に Commit no 今回のトピックはこちら
  6. 6. Pull Requestの流れ fork式 Pull Request forkする cloneする Prototype branch作成 更新に対応した branch作成 Pull Request
  7. 7. 誰かのリポジトリをforkする fork式 Pull Request forkする cloneする Prototype branch作成 更新に対応した branch作成 Pull Request
  8. 8. –僕 誰かがいたら、困ってねぇし練習してるよ
  9. 9. 練習に便利な 「誰かのリポジトリ」 • GithubのOctcatさんの • Spoon-Knife • 英語だけど怯まない https://github.com/octocat/Spoon-Knife
  10. 10. forkしたリポジトリをclone fork式 Pull Request forkする cloneする Prototype branch作成 更新に対応した branch作成 Pull Request
  11. 11. forkしたリポジトリをclone fork式 Pull Request forkする cloneする Prototype branch作成 更新に対応した branch作成 Pull Request $ git clone git@github.com:hoge/Spoon-Knife.git $ cd Spoon-Knife
  12. 12. Prototype branch で試行錯誤 fork式 Pull Request forkする cloneする Prototype branch作成 更新に対応した branch作成 Pull Request $ git checkout -b Spoon-Knife_prototype Switched to a new branch Spoon-Knife_prototype $ vim README.md #試行錯誤その1 $ git commit -am 試行錯誤1 $ vim README.md #試行錯誤その2 $ git commit -am 試行錯誤2
  13. 13. こんなログがでましたね? $ git log [ /Development/Spoon-Knife] commit 550f2579700000000000000000000000000000 Author: hogehoge Date: Thu May 1 20:45:09 2112 +0900 ! 試行錯誤2 ! commit 17e3ef37700000000000000000000000000000 Author: hogehoge Date: Thu May 8 20:44:13 2112 +0900 ! 試行錯誤1
  14. 14. Prototype branch をpush fork式 Pull Request forkする cloneする Prototype branch作成 更新に対応した branch作成 Pull Request $ git push origin Spoon-Knife_prototype
  15. 15. Githubに行くと
  16. 16. さあPull Requestだ
  17. 17. My Pull Request • Pull Request: ここ、なおしたったで • fork元の変更?コンフリクト?しらんがな • そっちでなんとかしてや^ー^v
  18. 18. (#^ω^)ビキビキ
  19. 19. fork元の更新を適用 fork式 Pull Request forkする cloneする Prototype branch作成 更新に対応した branch作成 Pull Request $ git remote add upstream https://github.com/ octocat/Spoon-Knife.git #初回のみ $ git stash $ git checkout master $ git pull upstream master $ git checkout Spoon-Knife_prototype $ git rebase master Spoon-Knife_prototype # ここでコンフリクトしたら適宜直す $ git push origin master $ git push -f origin Spoon-Knife_prototype ! $ git checkout Spoon-Knifea_prototype $ git stash pop # ここでもコンフリクトしたら適宜直す
  20. 20. Pull Requestが来ると やっぱちょっとうれしい。 どんなのかな?
  21. 21. Pull Request List • List1 変えたよ author: Hoge • List2 変えたった author: Hoge • List3 変えましたわ! author: Hoge • List4 か、変えてやったわ…/// author: Hoge • List5 変えたお author: Hoge
  22. 22. (#^ω^)ビキビキ
  23. 23. Pull Request用に commitをまとめる fork式 Pull Request forkする cloneする Prototype branch作成 更新に対応した branch作成 Pull Request $ git checkout Spoon-Knife_prototype $ git checkout -b Spoon-Knife_PR $ git rebase -i master ! ##【編集前】エディタ上 pick e310d46 試行錯誤1 pick 1452498 試行錯誤2 ##【編集後】エディタ上 pick e310d46 試行錯誤 squash 1452498 2つ目以降のcommit ! ログはこれまでの変更をまとめたものを書く。 「なにを、どうして、どうやって変えたか」 ! これでSpoon-Knife_PRに1つのcommitとしてま とまる。
  24. 24. Pull Requestを送る fork式 Pull Request forkする cloneする Prototype branch作成 更新に対応した branch作成 Pull Request $ git push origin Spoon-Knife_PR GithubからPull Requestを送る メッセージ欄で色々やりとりして 認められたらたぶんマージされる. ! これまでの流れを実践し、 良いコードを書くと ここが減らせるかも
  25. 25. こんなかんじ
  26. 26. ・平易な表現 ・issue番号やコードを明確に示す ・何をした(Fix, Add, Support)か示す
  27. 27. と受け取った時 わかりやすいかも。 例: Title: Fix FUGAFUGA(#23). Change HOGEHOGE for FUGAFUGA(#23).
  28. 28. これであなたも 立派なプルリク充

×