能否找到删除git存储库中标签的人?
假设你有一个带有贡献者的存储库。 存储库具有dev
标记和版本:v0.1.0
,v0.1.1
等。
某人删除了标记。 您如何找到谁删除了git标记?
根据这个关于恢复已删除标签的git提示,您可以执行以下操作:
在git fsck
中查找所有不可达标签:
git fsck --unreachable | grep tag
接下来,对输出中的每个提交哈希值运行以下操作:
git show COMMIT_HASH
如果你想要一个列出所有不可达(已删除)标签及其相关人员(标记者)的shell脚本,你可以运行以下命令:
for commit in `git fsck --unreachable | grep tag | awk '{ print $3 }'`; do
git show $commit | grep -E "^(tag|Tagger)";
done
编辑:这并没有回答实际问题,但是它告诉你如何查看索引中所有无法访问标签的作者。
更新2:这些无法访问的提交将在垃圾收集运行后的某个到期时间消失。
git tag tag-name
不会创建标签对象,因为没有理由这样做。如果您这样做,将添加一个引用,这就是所需的全部内容。只有在需要存储消息以及不属于提交的标记时,才会使用 git tag -[asu]
创建标记对象,请参阅 git help tag
。 - user743382检查对象目录:100%(256/256),完成。检查对象:100%(546/546),完成。
没有提交哈希值... - Ionică Bizău
ssh
协议... 我不明白第二个问题。你是指git log
吗? - Ionică Bizău/var/log/auth.log
的权限。 - Alexander Yancharuk