いつかチームで開発することを夢見て普段もソースの管理には Git と GitHub をつかっているのですが、今回は Pull Request について調べたのでメモ。
ちなみに以下のブログ見て勉強したことのトピックメモなので詳細はリンク先へ。
- fork してプルリクする場合
はじめてのPull Request | Arapedia ぼくの技術的まとめですお - 共有リポジトリでプルリクする場合
GitHub初心者はForkしない方のPull Requestから入門しよう | qnyp blog - いままでで最もわかりやすかった Git の解説
こわくない Git | SlideShare
ということで、以下ポイント
- fork してプルリクする場合
- 本家から fork
- fork してきたのをローカルにクローン
$ git clone origin
- 作業用ブランチ切る
$ git checkout -b hoge
-b
は新規ブランチ作成してテェックアウト(ブランチに移動)するオプション - ブランチで作業(コミットとかコミットとか)
- master ブランチを本家の master と合わす。(プルリク前に本家最新版をローカル master に反映しとく)
$ git remote add [本家URL]
$ git pull [本家URL] master //master ブランチで実行
- 作業したブランチを、最新版にした master に反映して、コミットログを綺麗にする。
$ git rebase i- master [作業用ブランチ]
その後、開いたエディタ上で、複数のコミットをsquash
して一つにして綺麗に。
これで、プルリクしてOKな内容になる。たぶんここが一番むずいので rebase とはなんなのかを理解するべし。 - プルリク専用ブランチを切る。
これは、プルリク専用ブランチを切ることで後々の修正とかに対応しやすくするため。必要なければ作業用ブランチでプルリク送っても良い。 - それぞれpush
$ git push origin [ローカルブランチ☓3]
- GitHub 上でプルリク専用ブランチで Pull Request 作成
以上。
- 共有リポジトリでプルリクする場合
これは、チーム内での開発の時とかによさげなやつ。GitHub でもこのスタイルとのこと。- 共有リポジトリからローカルにクローン
$ git clone origin
- 作業用ブランチ切る
$ git checkout -b hoge
- ブランチで作業(コミットとかコミットとか)
- 作業用ブランチを共有リポジトリにプッシュして GitHub 上でプルリク作成
- 共有リポジトリからローカルにクローン
以上。簡単!
共有リポジトリの方は、チームでやってたら、push の前にコミット綺麗にするとかのルールはいるかも。