この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
githubは操作がブラウザ上で完結できます。ただ、terminal上からより利便性高く行いたいと思うこともあり、例えばgit clone
等にはghqを利用される方も多いと思います。
clone以外の操作をなんとかできないものかと調べていたところ、Developers.IOに以下の記事がありました。
上記記事執筆時でのhubはバージョン2.2.3で、この記事執筆時のバージョンは2.11.2と大きく更新が入っているようです。基本的な操作をおさらいしつつ、2.11.2までに追加されている機能について特に大きいと思われるものをさわってみました。
基本的な使い方
ベーシックなコマンドについては2.2.3の頃から変わらずそのままです。
* hub create [<repository-name>]
* hub clone github/hub
* hub pull-request [-b <branch-name>]
* hub issue
* hub fork # need before clone
* hub create [<repository-name>]
* hub browse github/hub # open in browser
* hub issue
また、GitHubアカウントの設定についても変わりません。
hub clone
については利便性の面でghq get
を利用している人も多いかもしれません。
追加機能
確認した限りでは、pull-request系で大きな変更が入った2.3.0と、Github APIのスクリプト操作を受付可能にする機能が入った2.8.3が個人的な見どころでした。
2.3.0
Release hub 2.3.0 – codename “Ancient Psychic Tandem War Elephant” · github/hub
hub pr
にてpull-request一覧取得、チェックアウト関わる操作が可能になっています。
hub pr list
hub pr checkout \<NUMBER>
hub pull-request
に担当者、ラベル、レビュアー、マイルストーンが指定可能になっています。
hub pull-request [-focp] [-b \<BASE>] [-h \<HEAD>] [-r \<REVIEWERS> ] [-a \<ASSIGNEES>] [-M \<MILESTONE>] [-l \<LABELS>]
hub pull-request
とhub issue create
にテンプレートが利用可能になっています。
全面的にプルリクエストの利便性が上がっているバージョンでした。
2.8.3
Release hub 2.8.3 · github/hub
頑張れば色々できるようになったというイメージがあります。実際に使うかどうかは個人差があるかもしれません。
ヘルプコマンドのショートカット
hubそのものの更新ではありませんが、正直コマンド一覧を辿り辛かったこともあり、補完出来るようにしてみました。
% vim ~/.zshrc
function hubh() {
result="$(hub help | peco | awk '{print $1 }' | sed 's/ //g')"
print "> hub help hub-${result}"
hub help hub-${result} | less
}
% exec $SHELL -l
% hubh
まとめ
導入していなかった方は、インストールしておくことでterminal上からのgithub操作がとても易くなるはずです。
既に導入済みでもhubを更新していなかった方は、問題なければ是非とも更新をおすすめします。