はじめてのpull request
pull requestする機会があったので経験してみた。
forkからpushまで
- GitHub上でforkする。→GitHub上の自分のリポジトリにコピーされる。
- git clone git@github.com:xxx.xxx.git →ローカルにコピーされる。
- git branche -b work →ローカルにブランチを作成する。
- ソース修正
- git commit -m 'message'
- git push origin work → GitHub上の自分のリポジトリにworkブランチを作成してpushする。
その後のGitHub上での操作は以下のようになる。
pull request作成
git push後、GitHubにアクセスすると以下のように「コミットされているけど、pull requestする?」というメッセージが表示されている。
用意周到。素晴らしい。「Compare & pull request」ボタンを押す。
メッセージの入力
メッセージの入力を求められる。タイトルは最後のコミットメッセージが表示されるようだ。また、pull requestの元と先のリポジトリ&ブランチが表示されているので確認する。
画面下部には修正差異が表示されていて最後の確認をすることができる。良ければ「Create pull request」ボタンを押す。
やり取り
ここで色々とやり取りができるっぽい。 「Files changed」タブではソースに対してコメントを入力することができる。
まとめ
- 自分のリポジトリで管理して好き勝手に修正できるので、他人のソースを修正するのに抵抗がなくなる。
- うまくいけばその修正を取り込んでもらえる。取り込んでもらえなくても自分は自分で使えばいい。
- 操作が楽。
- こうやってリモート開発しているのね。
git pushでinvalid author/committer???
NetBeansでコミット後、コンソールからgit pushしたら以下のエラーが発生した。
remote: error: object 57865af073ba3ef03758680c870ff3a970e5ba21:invalid author/committer line - bad email
remote: fatal: Error in object
error: pack-objects died of signal 13
error: failed to push some refs to 'git@github.com:tsurugeek/sample.git'
invalid author/committer???
git logの結果を見ると確かにおかしい。
sample junya$ git log
commit 57865af073ba3ef03758680c870ff3a970e5ba21
Author: Junya Kemmochi <github@sample.com <>
Date: Wed Apr 15 15:13:05 2015 +0900
以下のようになるのが正しい。
Author: Junya Kemmochi <github@sample.com>
コミットログを修正したら正常にgit pushできた。
git commit --amend