ローカルの Git リポジトリに対応するリモート GitHub リポジトリを作成するコマンド

要旨

コマンド

gh repo create --source $(git rev-parse --show-toplevel) --private

を実行すると、ローカルの Git リポジトリと同名の GitHub リポジトリを作成し、リモートリポジトリ origin に設定することができます。


ローカルリポジトリを作ってから GitHub リポジトリを作る

Git/GitHubで新規にプロジェクトを開始するとき、まず GitHub リポジトリを作成してからローカル環境にクローンする人が多いでしょうか?

私はちょっとした技術検証などでカジュアルに新しい Git リポジトリを作るのですが、そのようなときにとりあえずローカルでリポジトリを作成し、少し作業を進めてから GitHub にリモートリポジトリを作るということがよくあります。

例えばローカル環境の適当な場所に examplerepo という Git リポジトリを作成して、そこに移動したとします。

git init examplerepo
cd examplerepo

このとき、examplerepo という名前の GitHub リポジトリを作成し、それをリモートリポジトリとして設定するという作業が必要になります。

普通に GitHub のサイト上でリポジトリを作成してURLをコピーし、git remote add origin <リモートURL> としても良いのですが、もっとシンプルな方法があります。

コマンド

それがこのコマンドです:

gh repo create --source $(git rev-parse --show-toplevel) --private

ここで ghGitHub CLI のコマンドです。 これはあらかじめインストールしておく必要があります。

--source オプションでローカルにあるGitリポジトリの場所を指定しています。

実は、以前は単に gh repo create と打てば同じことができていたのですが、GitHub CLI バージョン 2.3.0 からは --source オプションが必要になりました。

--private オプションは GitHub リポジトリをプライベートにするための設定です。パブリックにしたい場合はこのプションを --public に変えます。

エイリアス

コマンドを覚えるのは大変なので、私は Git 設定ファイルで次のようにエイリアスを設定しています。

[alias]
    create-remote = "!f() { gh repo create -s $(git rev-parse --show-toplevel) --private; }; f"

こうしておくと、同じ操作が

git create-remote

のコマンドでできるようになります。