LoginSignup
22

More than 5 years have passed since last update.

GitHub へ簡単に Pull Request を送る

Last updated at Posted at 2013-04-09
$ git pr

で現在のブランチをリモートに push した状態で、簡単に pull-request が送ることができるようにすることを考えてみます。

まず hub の pull-request を使うことを前提とします。

通常 hub で pull-request を送るときは、以下のような形式になります。

$ hub pull-request -h owner:branch -b owner:branch

GitHub の運用ポリシーは色々あるとおもいますが、ひとつのプロジェクトで作業をしている時は、hub pull-request -h <不変>:<可変> -b <不変>:<不変> という形式になると思います。(不変と書いてますが、分散バージョン管理で運用されている方はあてはまらないかもしれません。ごめんなさい。)

$ git config pr.head-owner banyan
$ git config pr.base-owner banyan
$ git config pr.base-branch master

そのプロジェクトのルートディレクトリで必要な値を設定します。
以下のように設定されていれば OK です。

$ cat .git/config
...
[pr]
        head-owner = banyan
        base-owner = banyan
        base-branch = master # ここはプロジェクトによっては develop になったりする

そして ~/.gitconfig

pr = !hub pull-request -h `git config pr.head-owner`:`git rev-parse --abbrev-ref HEAD` -b `git config pr.base-owner`:`git config pr.base-branch`

と記述します。(もしくは git config --global で)

$ git co -b foo
$ EDIT EDIT...
$ git ci -m 'foo'
$ git push -u origin foo
$ git pr

これでカレントブランチをベースにした特定のプロジェクトの GitHub への pull-request が簡単にできるようになりました。


  • 余談ですが、hub は -i オプションをつければ issue を pull-request にすることができますが、pull-request は reopen することができないため、使い勝手が悪いので最近はほとんどつけていません。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22