#1.この記事について
###こんなケースを想定。
《ある程度定型的なコミット-プッシュ処理をバッチ的にまとめて処理したい》
《コミットのコメントをいちいち打つのが面倒なので自動的に差分内容を反映させたい》
これを使えばちょっとは楽になるかもしれない。
#2.やりたいこと
・add,commit,pushまでのバッチ処理
・コメントの自動挿入(日付+差分内容)
・上記内容を網羅したシェルスクリプトの作成
#3.使用したツール・環境
・Windows10
・git version 2.23.0.windows.1
・GitBash
#4.作成したコード
#!/bin/bash
#例外処理
#参考URL:https://cloudpack.media/532
set -e
trap 'echo NG' ERR
#バージョン管理しているフォルダに移動
cd /c/Users/username/versionControlDirectory
git add -N .
git add .
#コメント内容作成
#現在時刻格納
foo=$(date "+%Y%m%d_%H%M")
#前回のコミットに対する差分格納
bar=$(git diff HEAD --stat)
#文字列として連結
foobar="${foo} __ ${bar}"
git commit . -m "$foobar"
git push origin master
上記に作成したshファイルを
下に格納します(環境によってしまう場所が違うかも。gitbashのパス変数の管理下ならどこでもいいかもしれない)。
C:\Program Files\Git\usr\bin
→パスが通ってるので
GitBashのコンソールでタブキーで補完可能になる。
実際に実行すると下のGithubのようにプッシュできた。 [https://github.com/dede-20191130/MyExcelVBA/blob/master/GitBash%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%83%86%E3%82%B9%E3%83%88/test.txt](https://github.com/dede-20191130/MyExcelVBA/blob/master/GitBash%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%83%86%E3%82%B9%E3%83%88/test.txt)
#5.コードの解説
fooとbarに載せたいコメントを格納して、
連結したfoobarを-mの引数として取る。
例外処理は下記のサイトをご参考させていただいた。
https://cloudpack.media/532
#5.5.Powershellスクリプトでも同じようなものを作成してみた
PycharmのターミナルエミュレータをわたしはPowershellにしているので、
Pycharmでの定型的なプッシュを楽にするために、
以下のようにスクリプトを組んでみました。
Param( $selectedPath)
try
{
$selectedAbsPath = (Resolve-Path $selectedPath).Path
$currentDir = (Resolve-Path .).Path
Write-Host $selectedAbsPath + 'に対してバッチ処理します。'
cd $selectedAbsPath
git add -N .
git add .
#現在時刻格納
$foo = Get-Date -Format 'yyyyMMdd_HHmm'
#前回のコミットに対する差分格納
$bar=$(git diff HEAD --stat)
#文字列として連結
$foobar = $foo + '__' + $bar
git commit . -m $foobar
git push origin master
Write-Host '正常終了'
}
catch [System.Exception]
{
Write-Host "エラーが発生しました。"
}
finally
{
Write-Host "プログラムを終了します。"
#元の階層に戻る
cd $currentDir
}
#6.終わりに
コーディングは下の便利なサイトを利用しました
(Pycharmも買ったんだけれどプロジェクト切り替えがめんどくさい)
https://www.jdoodle.com/test-bash-shell-script-online/
なにか補足がありましたらコメントください。