Git repo中的奇怪提交哈希

时间:2014-07-17 16:13:32

标签: git

我有一个标签,我被迫进行新的提交,然后我强行将其推向上游:

$ git tag -f 4.2.0/1900 releases/4.2.0
Updated tag '4.2.0/1900' (was bab88f3)

$ git push -f upstream 4.2.0/1900
Total 0 (delta 0), reused 0 (delta 0)
To ssh://git@stash:7999/ab/repo.git
 + bab88f3...9523283 4.2.0/1900 -> 4.2.0/1900 (forced update)

我注意到它显示bab88f3作为标记引用的上一次提交。所以,我做了一个日志:

$ git log bab88f3 -1
commit 0d17fc10d0fd17e2def7544a8db3e1558ba2453d

这不是我期望看到的提交。到底是怎么回事?为什么bab88f3根本不会显示在我的日志中?

1 个答案:

答案 0 :(得分:0)

bab88f3似乎是带注释的标记对象的(缩写)ID,所述对象指向提交0d17fc10d0fd17e2def7544a8db3e1558ba2453d。当你跑:

git tag -f 4.2.0/1900 releases/4.2.0

你告诉git擦除旧的轻量级标记4.2.0/1900(指向带注释的标记对象)并用releases/4.2.0标识替换它,显然提交9523283

通常,指向带注释的标记对象的唯一内容是其他标记(其他带注释的标记,或者更典型地,创建带注释的标记时创建的轻量标记)。