github cliで新規プロジェクトを超簡単に始める方法
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