# Set the HEAD to the old commit that we want to tag
git checkout 9fceb02
# temporarily set the date to the date of the HEAD commit, and add the tag
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" \
git tag -a v1.2 -m"v1.2"
# set HEAD back to whatever you want it to be
git checkout master
例
ここで、
9fceb02
はコミットIDの先頭部分です。このタグをプッシュするには、
git push origin v1.2
を使用します。git log` を実行すると、現在のブランチのすべてのコミット ID を表示することができます。
Pro Git Bookには、taggingに関する良い章があります。
Warning: これは、現在の日付 のタグを作成します (この値は、たとえば GitHub のリリースページに表示されるものです)。 タグの日付をコミット日にしたい場合は、another answerをご覧ください。
Just the Code
詳細
dkinzerさんの回答では、日付がコミットの日付ではなく、現在の日付(
git tag
コマンドを実行したとき)のタグが作成されます。タグ`のGitヘルプには、_"On Backdating Tags"_というセクションがあり、そこには次のように書かれています。このページ "How to Tag in Git" を見ると、HEAD のコミットの時間を抽出する方法が書かれています。
特定のコミットの日付を抽出するには、次のようにします。
しかし、コミットを2回繰り返すのではなく、HEADをそのコミットに変更して、両方のコマンドで暗黙的に使用する方が簡単だと思われます。
最も簡単な方法は
git tag v1.0.0 f4ba1fc
です。ここで、
f4ba1fc
はタグ付けしたいコミットのハッシュの先頭、v1.0.0
はタグ付けしたいバージョンを表しています。