🐙
gh コマンドで選択したリポジトリ(gh-resolved)を変更する方法
概要
業務や個人開発で、リポジトリを作成したり PR を作成したりするときに、gh
コマンドを使用しています。gh
コマンドの解説は省きますが、非常に便利です。
本題に移ります。gh
コマンドは fork したリポジトリでgh browse
やgh pr
を使用すると、リポジトリを選ぶように指示されます(以下を参照)。
リポジトリを選択する例
> gh browse
? Which should be the base repository (used for e.g. querying issues) for this directory? [Use arrows to move, type to filter]
> FORK_ORIGIN/REPOSITORY_NAME
MY_ORIGIN/REPOSITORY_NAME
一度設定した base repository を修正する方法が公式ドキュメントを調べても見当たりませんでした。調査したところ issues に解決方法が載っていたので、その方法についてまとめます。
変更方法
結論
以下のコマンドで gh-resolved
の設定を初期化できます。
実行後、再度gh browse
を実行するとリポジトリの選択が可能になります。
gh-resolvedをリセット
> git config --unset remote.origin.gh-resolved
また、直接変更したい場合は、以下で変更できます。
gh-resolvedを変更
git config remote.origin.gh-resolved OTHER_ORIGIN/REPOSITORY_NAME
解説
コマンドの意味について解説します。
gh
コマンドは一度選択したリポジトリを.git/config
ファイルにキーremote.origin.gh-resolved
で登録します。
これはgit config --edit
でも確認できます。
remote.origin.gh-resolvedを表示
> git config --unset remote.origin.gh-resolved
MY_ORIGIN/REPOSITORY_NAME
そのため、gh-resolved
をgit config --unset
で初期化するか、git config remote.origin.gh-resolved リポジトリ名
で変更できます。
余談
gh
コマンドではなくgit
コマンドで設定を解除するしくみは issues でも議題に取り上げられており、今後(2022 年 1 月 22 日以降)gh
コマンドにも機能に追加される可能性があります。詳しく以下の issues(上記の例と同等)を確認してみてください。
Discussion