2

リポジトリに「Release_V1.0.0.4」というタグを付けました。しかし、これが「gitdescribe」と「gitdescribeorigin」から得たものです。

[root pds_series]#git describe

Release_V1.0.0.2-22-g0859de9

[root pds_series]#git describe origin

Release_V1.0.0.2-18-gce2b24c

「gitdescribe--all」と「gitdescribe--tags」を使用して、適切なタグを取得しました。

[root pds_series]#git describe --all

tags / Release_v1.0.0.4

[root pds_series]#git describe --tags

Release_v1.0.0.4

また、次のコマンドで正しいタグを取得しました。

[root pds_series]#git log --pretty = format:'%ad%h%d' --abbrev-commit --date = short -1

2012-11-15 0859de9(HEAD、Release_v1.0.0.4、マスター)

誰かがこれの背後にある理由を知っていますか?この問題を解決するにはどうすればよいですか?

4

1 に答える 1

7

「軽量」タグを使用した可能性があります。デフォルトgit describeでは、タグオブジェクトのみを使用してコミットを記述しますが、タグオブジェクトではなくコミットを直接指している場合でも、その--tags下の参照を使用します。refs/tags

タグ オブジェクトを作成するには、-a(注釈付き) または-s(-u署名付き) オプションのいずれかを使用する必要がありますgit tag。そうしないと、軽量タグ (コミットを直接指す参照) が作成されます。

2 つのタグの違いを確認するには、次を試してください。

git cat-file -t Release_V1.0.0.2

と:

git cat-file -t Release_v1.0.0.4

オンはおそらく「タグ」と言い、もう一方は「コミット」と言うでしょう。

-fこの問題を解決するには、 and (say)を使用してタグを再作成します-a

git tag -f -a Release_v1.0.0.4 Release_v1.0.0.4
于 2012-11-16T08:12:48.793 に答える