GitHub

GitHub の Pull Request について調べた

いつかチームで開発することを夢見て普段もソースの管理には Git と GitHub をつかっているのですが、今回は Pull Request について調べたのでメモ。

ちなみに以下のブログ見て勉強したことのトピックメモなので詳細はリンク先へ。

ということで、以下ポイント

  • 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 の前にコミット綺麗にするとかのルールはいるかも。