最近まで 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 list
hub 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