GitHub のコマンドラインツール「hub」の基本と便利な使い方のまとめ
hub とは
hub は、GitHub に対する操作をコマンドラインから簡単に行うためのツールです。プルリクエストの作成やリポジトリのクローン、リポジトリページのブラウザでのアクセスなどといった操作をコマンドだけで操作することができる、GitHub を使っている開発者には欠かせない便利ツールです。
hub を紹介している記事はすでに数多くありますが、本記事では hub の基本 をまとめつつ、 より簡単に使うための Tips を紹介したいと思います。
hub のインストール
Mac をお使いであれば Homebrew で簡単にインストールすることができます。
$ brew install hub $ hub --version git version 2.6.2 hub version 2.2.2
エイリアスの設定
hub は、git コマンドとほぼ同等に使うことができます。clone
や pull
、push
などといったような通常の git コマンドはそのまま使うことができます。
$ hub push origin master
また反対に、hub のコマンドを git コマンドのように使いたい場合は、.bash_profile
または .zshrc
にエイリアスを張りましょう。
bash の場合
eval "$(hub alias -s)"
zsh の場合
function git(){hub "$@"}
なお、プロンプトにブランチ名などを表示している場合、下記の通りに設定すると高速化できます( git コマンドそのものを実行する時に hub コマンドを経由しない)。
GitHub アカウントの設定
GitHub アカウントが必要なコマンドを叩くときは、アカウントの設定が必要です。
$ hub github.com username:
MFA (多要素認証) を有効化している場合は、OAuth トークンを使ってアクセスするようにします。
OAuth トークンは GitHub の Settings の中にある Personal access tokens にて生成することができます。
生成したらトークンをコピーします。 ~/.config/hub
ファイルを、以下のフォーマットで作成します。
--- github.com: - protocol: https user: YOUR_USER_ID oauth_token: YOUR_OAUTH_TOKEN
これで、OAuth トークンを利用して hub コマンドを実行することができます。
hub コマンド一覧
hub コマンドの機能を一覧にしました(git コマンドと同じ動作をするコマンドは割愛)。チートシート的に活用ください。
コマンド | 機能 |
---|---|
clone |
リポジトリをクローンする。URL指定ではなく github/hub のような指定だけでクローンできる。 |
pull-request |
プルリクエストを作成する。-b オプションでベースブランチを指定できる。 |
fork |
リポジトリをフォークする。 |
create |
リポジトリを新規作成する。 |
browse |
リポジトリをブラウザで開く。 |
compare |
特定のブランチとローカルブランチの Compare ページをブラウザで開く。 |
release |
リリースを一覧する、または新規作成する。 |
issue |
Issue を一覧する、または新規作成する。 |
ci-status |
CI のステータスを取得する。 |
※ hub version 2.2.3 現在のコマンド一覧です。今後、アップデートにより追加・削除される可能性があります。
よく使うコマンドをもっと簡単にする
個人的には、プルリクエストを作成するコマンド pull-request
を打つのがちょっと面倒です。
$ hub pull-request
また、リポジトリをブラウザで開くコマンド browse
も面倒です。
$ hub browse
そこで、エイリアスを貼ります。貼るだけです…
$ git config --global alias.pr pull-request $ git config --global alias.see browse
これで、より簡単にコマンドを打つことができるようになります。
$ hub see $ hub pr
まとめ
私が hub コマンドで最も重宝しているのがプルリクエストを作成する機能です。ブラウザで GitHub のページをいちいち開いてプルリクエストを作成して…と言うのはちょっと手間なので、hub コマンドを使って効率的にプルリクエスト運用しましょう。