47

コミットに軽量タグを付け、そのタグをリモートリポジトリにプッシュして、他の開発者と共有しました。に表示されるように注釈を付ける必要があることに気付きましたgit describe

物事を壊すことなくコミットを変換/再タグ付けする方法はありますか?

4

4 に答える 4

38

軽量タグは、そのコミットを指す単なる「参照」です。古いタグの上に新しい注釈付きタグを強制的に作成できます。

git tag -a -f <tagname> <tagname>

Git v1.8.2以降、軽量タグを、既存のものと同じコミットを指す実質的に早送りまたは真のタグオブジェクトであるものに置き換える場合でも--force、リモート上のすべてのタグをに置き換えるために使用する必要がありますgit pushタグ参照。

git push --force origin <tagname>
于 2011-02-15T11:11:35.090 に答える
23

チャールズの回答このブログ投稿に基づいて、次のようなものを使用する方が良いと思います。

#!/bin/sh
tag=$1
date="$(git show $tag --format=%aD | head -1)"
GIT_COMMITTER_DATE="$date" git tag -a -f $tag $tag
于 2014-01-09T22:21:51.167 に答える
4

すべてのタグを注釈付きに変換します(Charles Baileyの例とFerencWágnerのコメントに基づく):

for tag in $(git tag -l); do git tag -a -f $tag $tag^0 -m $tag; done
git push --tags --force
于 2016-10-20T10:31:19.950 に答える
2

単純に使用git describe --tagsして、軽量タグを検索に含めることもできます。

于 2014-11-05T10:06:14.627 に答える