はじめに
自分はプログラミングを学習する際、サンプルコードを独立したレポジトリで管理しGitHubに上げています。
応用的なコードを書きたくなったら、さらに新規のレポジトリを作成します。
このルーティンが楽になると、学習が捗りそうです。
ということで、1行で以下を実行できるシェル関数を定義しました。
- ローカルにgitレポジトリを作成
- その内容でGithubにもレポジトリを作成しpush
- VSCodeでローカルのレポジトリ内容を開く
前提
- ghq
- GitHub CLI
- v1.9.2
- これのおかげでGitHub Enterpriseにも対応しています
- zsh/bash
方法
zshの場合
function ghrc {
local GITHUB_ORG_URL=github.com/your_userid
mkdir -p $(ghq root)/${GITHUB_ORG_URL} &&
cd $(ghq root)/${GITHUB_ORG_URL} &&
gh repo create $argv --confirm &&
cd ${argv[1]} &&
echo "# ${argv[1]}" >> README.md &&
git add . && git commit -m "first commit" && git push --set-upstream origin master &&
code .
}
を.zshrc
に書き足します。your_userid
はあなたのユーザidに書き換えてください
ghrc hogehoge
で、以下が実行されます。
- ghqの形式に合ったディレクトリ構成で、ローカルに
hogehoge
レポジトリを作成 - Githubに
hogehoge
レポジトリを作成 - README.mdを適当に書き足しGitHubにpush
- VSCodeで開く
-
code .
部分を、お好みのエディタで起動するように変更可能です-
idea .
だったり -
open . -a "sublime text"
だったり
-
-
bashの場合
function ghrc {
local GITHUB_ORG_URL=github.com/your_userid
mkdir -p $(ghq root)/${GITHUB_ORG_URL} &&
cd $(ghq root)/${GITHUB_ORG_URL} &&
gh repo create $@ --confirm &&
argv=("$@")
cd ${argv[0]} &&
echo "# ${argv[0]}" >> README.md &&
git add . && git commit -m "first commit" && git push --set-upstream origin master &&
code .
}
argv=("$@")
の行が追加されただけです。your_userid
はあなたのユーザidに書き換えてください
(fishの場合)
https://qiita.com/ryo2132/items/2a29dd7b1627af064d7b で「ghcr」と検索してカスタマイズする
push時にエラーが出る人へ
こんなエラー
fatal: The current branch chore/logdir has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin some
が参考になります
参考url
- ghqについてhttps://qiita.com/udzura/items/255d6e29dabad575c3a5
- GitHub CLI https://qiita.com/ryo2132/items/2a29dd7b1627af064d7b
-
code
コマンドの導入 https://qiita.com/naru0504/items/c2ed8869ffbf7682cf5c
感想
人によっては、npx create-react-app
とかvue create
とかプロジェクト作成CLIと組み合わせても良いかも?
golangの場合は、go mod init ${GITHUB_ORG_URL}/${argv[0]}
の1行足すのもアリ