Git で過去の commit に tag を追加する

過去に tag を忘れていた Git の commit に後から tag を付ける方法です。 該当する commit にそのまま tag を付けると、tag の作成日時が現在の物になってしまいます。 tag を付け忘れた過去の commit に後から tag を付ける場合には、以下の手順で作成日時を該当の commit と同じ日時にして tag を付けます。

Linux, macOS の場合

GIT_COMMITTER_DATE="$(git show [SHA] --format=%aD | head -1)" git tag -a 1.0.1 -m"v1.0.1"

[SHA] には tag を付ける commit の SHA を指定します。

Windows の場合

Windows の場合にはリポジトリのルートディレクトリで PowerShell を開き、以下のコマンドを実行します。

$env:GIT_COMMITTER_DATE=(git show [SHA] --format=%aD)[0];
git tag -a 1.0.1 -m"v1.0.1" [SHA]
git push --tags

[SHA] には tag を付ける commit の SHA を指定します。

参考資料