ふとした拍子にHubというツールが有ることに気がついた。GitHubの作業を簡略化してくれるらしい。早速
$ brew install hub
でインストール。ここに使用例があるのでそれを見ながらお試し。なお、そこで示されているように
$ alias git=hub
して使うのがお作法らしい。ちょっと気持ち悪いが、gitのコマンドはそのままパススルーし、hub特有のコマンドが追加されているという仕組みらしい。なので以下のgitコマンドは実際にはhubコマンドになる。
他のプロジェクトに貢献する開発者の典型的なパターン
既存リポをクローン。URLをフルパス表記する必要なし。楽チン。
$ git clone USER/REPO
Working copyに移ってブランチ作成。変更後にコミット
$ cd REPO
$ git checkout -b feature_branch
# (何かしら変更)
$ git commit -m "機能追加完了"
まぁ、ここまでは普通。私は何か変更を加えたいときは先にGitHub上でクローン(フォーク)し、そいつをローカルにクローンしてから変更するが、変更を加えて、あとからGitHub上でフォークしリモート追加でも良いと思う。いずれにしても面倒だ。
それがこのコマンド
$ git fork
一発で出来ちゃう。実際にはこのコマンドは
- GitHub上でフォーク
- フォークしたリポジトリを新たなリモートとして登録 (つまり
git remote add MY_NAME git://github.com/MY_NAME/REPO.git
)
しているっぽい。で、変更を自分のリモートリポにプッシュし
$ git push -u MY_NAME feature_branch
必要であれば、プルリクエストも送れる
$ git pull-request
なんか、お手軽だ。
GitHubのページへコマンドラインからジャンプ
課題リスト表示やWikiの表示もコマンドラインからできる。
$ git browser USER/REPO issues
$ git browser UEER/REPO wiki
"USER/REPO"の代わりに"--"で今いるリポジトリの課題リストやWikiになる。
おまけ
GitHub Enterpriseを使っている人は
$ git config --global --add hub.host my.example.org
と設定すればGHE向けにも使える。