🐙

github cliで新規プロジェクトを超簡単に始める方法

2023/03/28に公開

tl;dr

以下を.zshrcに追加してターミナルでstartProject testProjectすればok

startProject() {
  gh repo create $1 --private
  mkdir -p ~/dev/$1
  cd ~/dev/$1
  git init
  git remote add origin $(gh repo view <your user name>/$1 --json url --jq .url).git
  code .
}

必要なもの

解説

githubリポジトリの作成

gh repo create $1 --private

引数の名前でリポジトリを作成する。基本privateが多いと思うので--privateだが、--publicでもok。エンタープライズなら--internalも使える

ディレクトリ作成~gitの初期化

mkdir -p ~/dev/$1
cd ~/dev/$1
git init

解説はほぼ不要かも。与えられた引数を使ってディレクトリを作成しgit init。問題は、githubのリポジトリ名とディレクトリ名のケースが違う場合。githubでtestProjectとし、ディレクトリはtest-projectにしたいなどがあればこのままでは無理なので、変換する関数を使う必要がある。
探せば見つかるよね、きっと。それかgithub copilotかchatGPTに聞きましょう。

最初に作成したgithubリポジトリをリモートリポジトリに登録

git remote add origin $(gh repo view <your user name>/$1 --json url --jq .url).git

分解すると、

gh repo view <your user name>/$1 --json url --jq .url
git remote add origin $(出力された文字列).git

となる。

gh repo view

作成したリポジトリの詳細情報の取得を行う。gh repo view <your user name>/$1だけだと全然情報は出てこない。--json urlとすることで、json形式でurlを取得できる。また、--jq .urlをつけることで、そのjsonのurlのvalueのみを出力できる。
sshで通信したい場合はgh repo view <your user name>/$1 --json sshUrl --jq .sshUrl

git remote add origin

リモートリポジトリとしてgithubのリポジトリを登録する。urlではなくsshで取得する場合は末尾の.gitは削除していい。ぶっちゃけurlでも不要だが、慣習的に付けてる。ないとムズムズする

vscodeで開く

code .

すでにcd ~/dev/$1で移動してるのでカレントディレクトリを示す.でいい。
vscodeじゃなければここだけ変えればok。

まとめ

自分は結構ボイラープレートを作ることが多いので、思ったより便利でした。

Discussion