Masayan tech blog.

  1. ブログ記事一覧>
  2. Bashスクリプト使って、1発で今日の日付のGitタグを生成する

Bashスクリプト使って、1発で今日の日付のGitタグを生成する

公開日

環境

前提

タグは、特定のコミットに任意の名前をつけることができます。開発中のキリがいいコミット(リリース時)に目印をつけておくことが可能です。また、以下のコマンドを実行することで、ブランチを新規作成したうえで、過去にタグをつけたコミットにチェックアウトすることができます。

$ git checkout -b ブランチ名 タグ名

なお、Github上では下図のように表示されます。

実装

.bashrcを開き、以下のコードを貼り付けます。やっていることは簡単で、以下の通りです。

  1. 今日の日付をdateで調べる
  2. 今日の日付の先頭にvを付与し、末尾に.1を付与する
  3. echoで最終的に生成されるgitコマンドを表示する

.bashrc

  • シェルスクリプトで変数と文字列を結合したい場合は、ダブルクォーテーション内で、${prefix}のように${}でくくって展開する
  • シェルスクリプトで変数を定義する場合はval="hoge"のように、記述する(イコールの左右に空白を付与してしまうとエラーになるので注意)
  • 定義した変数を後続の処理で参照する際は、変数の先頭に$を付与する必要がある
  • dateコマンドで日付を取得できる
  • シェルスクリプトの関数は、戻り値ではなく標準出力で結果を返すので、コマンドの出力結果をシェルスクリプト中で利用したい場合は、コマンド置換という方法があり(コマンドの結果を文字列として取得する)、$()で対象のコマンドをくくる必要がある。
gtag()
{
if [ ! "$1" ]; then
  echo "version番号の指定は必須です"
  return
fi

today=$(date '+%Y%m%d')
prefix="v"
version=".$1"

echo "git tag ${prefix}${today}${version}"
echo "git push origin ${prefix}${today}${version}"
}

コンソールで実行すると以下のようにコマンドが表示されます。問題なければコマンドをコピペしてgitコマンドを実行すればOKです。

$ gtag 1
git tag v20220312.1
git push origin v20220312.1

まとめ

いかがでしたでしょうか。本記事では、Bashスクリプト使って1発で今日の日付のGitタグを生成する方法について紹介しています。シェルスクリプトは作業自動化などに有用なのでぜひ参考にしてプログラムを組んでみてください。