
最近まで GitHub リポジトリを操作するときに ghq コマンドと hub コマンドを使っていた.リポジトリを git clone したり ~/ghq 直下のディレクトリに移動する場合に ghq コマンドと peco を使って,その他の操作は hub コマンドと git コマンドを使っていた.
ghqコマンド関連hubコマンド関連
GitHub CLI : gh コマンド
hub コマンドは今年3月からアップデートされてなく,今後は根本的に作り直された GitHub CLI に移行していく流れを感じる.GitHub CLI(gh コマンド)にも興味はあったけど,hub コマンドは便利だし,2014年頃から使っていて指に馴染んでいるし,様子を見ていた.ただ今年9月に GitHub CLI v1.0 がリリースされたこともあり,意を決して hub コマンドから gh コマンドに移行することにした.
当然ながら gh コマンドは hub コマンドを完全に置き換えるものではなく,併用もあり得る.詳しくは以下の gh-vs-hub.md 参照で!
よく使う hub コマンド🏆
gh コマンドに移行するために Mac で history コマンドを実行して「よく使う hub コマンド🏆」を調べた.結果としては以下に載せた「4種類」のコマンドをよく使っていた.特に hub open と hub checkout ${pr-url} は個人的には必須だった!
hub browse- リポジトリをブラウザで開く
hub openに alias を設定している- hub-browse(1) - Open a GitHub repository in a web browser.
hub checkout ${pr-url}- レビューをするためにプルリクエスト URL を指定してブランチを切り替える
- hub-checkout(1) - Check out the head of a pull request as a local branch.
hub pr listhub gist create- 新しく Gist を作る
- hub-gist(1) - Create and print GitHub Gists
hub open ➔ gh open
リポジトリをブラウザで開く場合,GitHub CLI だと gh repo view --web コマンドで実現できる.もともと hub browse は入力しにくく hub open に alias を設定していたため,今回は gh alias set コマンドを使って gh open に alias を設定した.便利!
$ hub browse $ gh repo view --web $ gh alias set open 'repo view --web' - Adding alias for open: repo view --web ✓ Added alias. $ gh open
hub checkout ${pr-url} ➔ gh pr checkout ${pr-number}
プルリクエストをレビューするためにブランチを切り替える場合,GitHub CLI だと gh pr checkout ${pr-number} コマンドで実現できる.hub コマンドでは「プルリクエスト URL」を指定していたけど,gh コマンドでは「プルリクエスト番号」になる.今までの癖を直して「プルリクエスト URL」の末尾にある「プルリクエスト番号」をコピーすれば良く,許容範囲とした.慣れていく!
$ hub checkout https://github.com/kakakakakku/xxx/pull/100 $ gh pr checkout 100
hub pr list ➔ gh pr list
プルリクエスト一覧を確認する場合,GitHub CLI でも特に変化はなく gh pr list コマンドで実現できる.同様に Issue の場合も gh issue list で実現できる.問題なし!
$ hub pr list $ gh pr list $ hub issue $ gh issue list
hub gist create ➔ gh gist create
作業中にログファイルなどを雑に Gist にアップロードしている.基本的に公開することはなく,Secret(プライベート)で作り,不要になったら削除している.そのときに hub gist create コマンドを使っていた.ファイルを指定することもできるし,echo と連携して Gist URL を発行するためだけに使うこともある.GitHub CLI でも特に変化はなく gh gist create コマンドで実現できる.問題なし!
$ hub gist create hello.txt $ echo 'aaa' | hub gist create $ gh gist create hello.txt $ echo 'aaa' | gh gist create
まとめ
hub コマンドから gh コマンドに移行した.コマンド履歴から「よく使う hub コマンド🏆」を調べて,多少パラメータに変化はあるものの問題なく使えることを確認できた.実は hub sync コマンドや hub ci-status コマンドなど,gh コマンドではサポートされていないものもあったけど(hub ci-status と gh pr checks は異なる),最近はほとんど使ってなく,問題ないと判断した.
hub コマンドもアンインストールした!今までありがとう!
$ hub
zsh: command not found: hub