22
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

GitHub へ簡単に Pull Request を送る

$ 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 することができないため、使い勝手が悪いので最近はほとんどつけていません。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
22
Help us understand the problem. What are the problem?