コマンドラインでGitHubのリポジトリを公開もプライベートも作成する

ブログ

コマンドラインでGitHubのリポジトリを公開もプライベートも作成したくなりました。

ブラウザでGitHubを開いて作成するのが面倒だなぁと思っていて、コマンドラインでできないかな、と思ったら出てきました。

Is it possible to create a remote repo on GitHub from the CLI without opening browser?
I created a new local Git repository:~$ mkdir projectname~$ cd projectname~$ git init~$ touch file1~$ git add file1~$ gi...

この記事はざっくり説明するとgitコマンドにhub-new-repoというサブコマンドを追加する、というものでした。

少し改変して公開リポジトリとプライベートリポジトリを作るようにしてみました。
~/.gitconfig[github]セクションにデフォルトのユーザ名を、[alias]セクションにサブコマンドを追加します。

$ cat ~/.gitconfig
# https://stackoverflow.com/questions/2423777/is-it-possible-to-create-a-remote-repo-on-github-from-the-cli-without-opening-br/38265340#38265340
[github]
    user = "yousan"
[alias]
    hub-new-public-repo = "!REPO=$(basename $PWD) GHUSER=$(git config --get github.user); curl -u $GHUSER https://api.github.com/user/repos -d {\\\"name\\\":\\\"$REPO\\\"} --fail; git remote add origin git@github.com:$GHUSER/$REPO.git; git push origin master"
    hub-new-private-repo = "!REPO=$(basename $PWD) GHUSER=$(git config --get github.user); curl -u $GHUSER https://api.github.com/user/repos -d {\\\"name\\\":\\\"$REPO\\\"\\,\\\"private\\\":\\\"true\\\"} --fail; git remote add origin git@github.com:$GHUSER/$REPO.git; git push origin master"%

実行するとこんな感じです。

$ mkdir testrepo; cd testrepo
$ git hub-new-public-repo

(作成完了!)

hub-new-private-repoにすればプライベートリポジトリが作成されます。(ただしプライベートリポジトリを持つにはGitHubに課金が必要です)

またgit add -A; git commit -m ''; git push origin masterを省略化するコマンドもあります。

git add --all; git commit -m 'first commit'; git push --all を省略化する - Qiita
はじめに Gitでの追加、コミット、プッシュのコマンドが長いのでZshで省略可しました。 下記のようなコードを一発で打ちたいです。 g...

ちなみにGitHub系の便利コマンドを集めたhubというコマンドパッケージもありますので、そちらもどうぞ。

Enjoy your GitHub!

コメント

タイトルとURLをコピーしました