sci

最果て風呂

Pull Request に関するメモ書き

Pull Request その前(2012.06.24)

Pull Request をしてみたくて下調べ。

  1. ウェブブラウザで Pull Request をしたいページにアクセスして fork
  2. ローカルのターミナルで git clone git@github.com:nakinor/bar.git
  3. 作業用のブランチを作る git checkout -b mypullrequest
  4. 作業をしてコミット
  5. リモートにプッシュするのは作業用ブランチ git push mypullrequest
  6. これで fork した自分のページの remote に更新が反映される
  7. Pull Request をする
  8. merge されても reject されても、結果が出たらリポジトリを削除
  9. また Pull Request をしたくなったら 1. からやり直す

Pull Request(2012.06.29)

正確には Git ではなく GitHub なんだけど、git ネタは少ないのでここに書いちゃう。

たぶん二度とする機会はないと思うけど Pull Request をしたので、忘れないようにメモ。

  1. フォークをしたいプロジェクトにウェブブラウザで訪問し「Fork」ボタンを押すと「Where do you want to fork this to?」と表示されるので「Fork to nakinor」を押す。ちなみに下には「You don't have permission to create new repositories for vim-jp」と表示されている。たぶん他のところのメンバーになっているから表示されているのだと思う。

  2. 自動的に画面が自分のホームに遷移して、nakinor 以下に seijiseikana-el がコピーされる。これは remote にある状態なので、ローカルで作業をするために clone をする。アドレスは SSH のところに書いてある。
    git clone git@github.com:nakinor/seijiseikana-el.git

  3. ローカルにクローンされたディレクトリに移動してから作業用のブランチを切る。
    git checkout -b features-menu

  4. 変更をしてコミット。今回はスクリプトを追加しただけなのだ。
    git add .
    git commit -m 'added command menus'

  5. 作業用のブランチを自分のリモートにプッシュする。
    git push origin features-menu

  6. またしてもウェブブラウザを使う。「Pull Request」ボタンを押すと画面が遷移して「You're asking moriyamahiroshi to pull 1 commit into moriyamahiroshi:master from nakinor:features-menu」と表示されている。今回はこのままで良いので、そのままにしておく。タイトルには自動的に「added command menus」とコミットメッセージが表示されているので、あとはお便りを書いて「send pull request」ボタンを押せば良い。

Hi, I wrote the script that add command menu to Emacs menu-bar.
Please check it.
Thanks.

以上で終了。結果が merge でも reject でも、わかった時点でリポジトリは削除するのが普通らしい。どうやら master を最新版に保持しておくのが面倒なのが理由とのこと。新たに commit をしたい場合は上の手順をはじめからやり直せば良いそうだ。

Pull Request その後(2012.06.30)

前回は結果が出たら Fork したリポジトリは削除するのが普通だと書いたけど、面倒でなければ下記のようにして元リポジトリの最新を追いかけることもできるそうな。

  1. git remote add upstream git://github.com/foo/bar.git
    リモートアドレスの別名を登録

  2. git pull upstream master
    ローカルのリポジトリにプル(マージされる)

  3. git push orign master
    自分のリモートにプッシュ

基本的に master を触らなければこれで本家の最新版に追随していける。Pull Request をする場合はブランチを切るので、こちらで作業中に本家の master に変更があった場合は作業ブランチで rebase をしなければならないとのこと。次回があるかどうかわからないので、その時になったらまた調べよう。

さて、肝心の PR だけれども、どうやら少しだけマージしてもらえたようで、初めての Pull Request にしては上手くできたのではないだろうか?