フォルダをGithubのリポジトリにするバッチを作ってみた
前書き
Unityでいろいろ試した後にGithubに追加したいけど、フォルダ名がリポジトリ名と被ってしまいリネームして中身を移動させてプッシュするのが手間でした。
なので、ドラッグ&ドロップしたらGithubのリポジトリを作って、コミットまでしてくれるバッチファイルを作りました。
フォルダ名がリポジトリ名になります。
バッチファイルのサンプルはGithubにも上げています。
環境
- Windows 10
Github CLIをインストールする
対応したOSのものをインストールします。
Github CLIをセットアップする
コマンドプロンプトにgh auth login
と打ち、認証を行います。
どのアカウントでログインするか聞かれます。
Github.com
とGithub Enterpise Server
の選択肢があります。
今回はGithub.com
を選びます。
次にGithubとやりとりをするプロトコルの選択肢が出ます。
今回はHTTPS
を選びます。
Githubの認証情報でGitを認証するか聞かれます。
今回はYes
を選びます。
どのように認証するか聞かれます。
今回はブラウザでしたいのでLogin with a web browser
を選びます。
Enterを押すとブラウザにワンタイムパスを打ち込むページが表示するので、コマンドプロンプトに表示されているワンタイムパスを入力します。
入力したら認証画面が出るので、Authorize github
を押して、認証します。
コマンドプロンプトに戻るとAuthentication complete. Press Enter to continue...
と表示されるので、Enterキーを押して終わらせます。
これで認証は終わりです。
バッチを作る
.batファイル作成し、以下のサンプルを張り付けて保存します。
サンプルではRider用に.gitignoreを追記してるので、注意してください。
:: 設定
set GITHUB_ID=eorfeorf
set REPO_TYPE=public
set IGNORE=Unity
set LICENSE=MIT
set DESCRIPTION=""
set ISSUES=false
set WIKI=false
::@echo off
setlocal
popd %~dp0
:: フォルダ名を取得.
:: なぜか末尾が消えるので\をつけ足してる.
set THIS_PATH=%1\
echo %THIS_PATH%
for %%1 in ("%THIS_PATH:~0,-1%") do set REPO_NAME=%%~nx1
echo %REPO_NAME%
:: ローカルを初期化.
pushd "./%REPO_NAME%"
git init -b main
popd
:: Githubのリポジトリを作成.
gh repo create %REPO_NAME% --%REPO_TYPE% -g="%IGNORE%" --license="%LICENSE%" -d=%DESCRIPTION% --enable-issues=%ISSUES% --enable-wiki=%WIKI% -y
:: リモートを追加.
set REPO_URL=https://github.com/%GITHUB_ID%/%REPO_NAME%.git
pushd "./%REPO_NAME%"
:: 生成されたファイルをローカルに.
git remote add origin %REPO_URL%
git pull origin main
:: Rider用に.gitignoreを修正.
echo # Rider>>.gitignore
echo .idea/>>.gitignore
:: 全部をプッシュ.
git add .
git commit -m "First commit"
git push -u origin HEAD:main
基本いじりたい設定を上に持ってきました。
GITHUB_ID
GithubのIDです。https://github.com/ここ/Repogitory.git
REPO_TYPE
リポジトリの公開範囲です。
publicとprivateがあります。
IGNORE
.gitignoreの種類です。
LICENSE
ライセンス設定です。
DESCRIPTION
リポジトリのDescriptionです。バッチの都合上、改行が入れられません。
ISSUES
issueを有効にするか指定。
WIKI
wikiを有効にするか指定。
使い方
リポジトリにしたいフォルダをこのバッチにドラッグ&ドロップします。
Unityの場合はプロジェクトのフォルダになります。
お願い
バッチで現在のフォルダ名を取得する際におまじないみたいなことをしているので、上手く解決できる方はご一報いただけると助かります。
最後に
欲しかった。
参考文献
転載元
Discussion