我有一个标签,我被迫进行新的提交,然后我强行将其推向上游:
$ 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
根本不会显示在我的日志中?
答案 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
。
通常,指向带注释的标记对象的唯一内容是其他标记(其他带注释的标记,或者更典型地,创建带注释的标记时创建的轻量标记)。