Github CLIツールの`gh`と`hub`を試してみる。
こんにちは!k-junです。
今日はgithub cli toolとして開発されているhub
とgh
を導入して比べてみようかと思います。
ghとは
github cliとしてGithubが公式に開発しているcli toolですね。
gh
はコマンド名であり名称ではないのですが、hub
との区別のために
ここではgh
と書いています。
hubとは
こちらはgithub cliとして非公式に開発されているcli toolです。 リポジトリの作成削除などのブラウザ上での操作が必要な箇所をcliとして行えるようです。
数年前から開発が進んでおり、gh
と比べても機能面で充実しているように思います。
開発から時間が経っていないためか、issueとpull requestに対する一通りの操作しか機能が存在しません。
公式が後発で開発していることもあってか、hub
よりはコマンドなどはまとまっています。
Install
macにinstallする際にはどちらもbrew
で行けるようです。
brew install github/gh/gh brew install hub
Features
gh
gh
の方はマニュアルが用意されており、一通りみたところ現在の機能は主に
issue周りとpull request周りだけのようですね。
- issueに関する一通りの操作(list, create, view, status)
- pull requestに関する一通りの操作(checkout, list, create, view, status)
発展途上のために機能が少ないのは当然なのですが、なぜcloseの機能がないんでしょうか...? 単にまだ開発されていないだけ...? コマンドの命名規則が統一されていたりと個人的には気に入っているのでどんどん機能が増えていって欲しいですね... あとは新しいrepositoryのopenとdeleteに関しては最低限欲しいところです...
hub
full
のdocumentationはこちらですね。
思ったよりもかなりいろいろな機能がもりもりでびっくりしました...
全部は紹介しきれないので個人的にいいなーと思った機能を紹介していきます。
hub create & delete
repositoryがcliで操作できるようになるので、気軽に作って削除してができるようになります。 これがあるとgitの開発フローの実演する際などに全てterminalで完結させることができるので、 気軽にrepositoryを作ることができるようになりそうです。hub compare
引数として与えたブランチと現在の差分を気軽にブラウザでみることができるようになります。 使用頻度も多そうなのでgh
にも欲しいですね...hub sync
localのブランチの状態を全て最新のものにしてくれるようです。vscodeの左下のボタンと同じ感じですかね。 こういうちょっとしたことが便利になるコマンドって嬉しいですよね。
Conclusion
現在の状態では間違いなくhub
の方が便利です 笑。ですが、gh
の方もこれから伸びてくるでしょうし、
何よりGithub公式がサポートしているのでどんどんクリティカルな機能が増えてgh
も便利になっていって欲しいですね。