Solist Work Blog

ソフトウェアエンジニアの日々

GitHubの作業を楽にするコマンド

Githubの作業を楽にする方法を考えます。 PPAP-Framework を作りたいと思いたったので おもむろに(どこのディレクトリからでもよい)

github-new-repository PPAP-Framework

コマンドをたたくと以下のようになります。

GitHubコマンドの説明

GitHubにリポジトリを作ってREADME.mdを初回コミットして リポジトリのあるディレクトリに移動します。 ghq で設定した作業ディレクトリによしなに準備してくれるので 何も考えずにすぐそこから作業を始められるのがよいです。

今まではブラウザでGitHubにアクセスして色々ボタンを押してリポジトリを作って ソースファイルを作るディレクトリを掘ってそこに移動して git clone コマンドをたたいて README.md ファイルを作りコミットする …なんてことをやっていたので大変便利になりました。

面倒くさいことは徹底的に排除しておかないとやる気があるときの情熱を損ないかねないので、 楽をするための自動化を先にやっておきましょう。

install


ghq と hub が必要なのでインストールします。

sudo pacman -S hub
yay -S ghq

~/.gitconfig を

[ghq]
    root = ~/src

GOPATH を

export GOPATH=$HOME
export PATH="$PATH:$GOPATH/bin"

としておくと go の src と GitHub を ghq で一緒くたにできるので便利

mkdir tekitou
cd tekitou
git init .
hub create

を一回実行すると認証があるので済ませると ~/.config/hub に oauth_token ができるので以降は自動的にできるようになります。 tekitou リポジトリができてしまうので GitHub で消しておいてください。

その後、 .zshrc か .bashrc に以下を書いておくと使えるようになります。

function github-new-repository() {
    if [ $# = 1 ]; then
	ghq root && cat ~/.config/hub | grep user \
	    && cd $(ghq root)/github.com/$(cat ~/.config/hub \
	    | grep user | awk '{print $3}') && mkdir $1
	if [ $? = 0 ]; then
	    cd $1
	    git init .
	    hub create
	    touch README.md
	    git add README.md
	    git commit -m 'first commit'
	    git push origin master
	fi
    else
	echo 'usage: github-new name'
    fi
}