是否有可能找到谁从存储库中删除了git标签?
假设您有一个包含贡献者的存储库.该仓库有dev标签和版本:v0.1.0,v0.1.1等等.
有人删除了一个标签.你怎么会找到谁删除了git标签?
您有两种类型的标签:
轻量级标记只是提交的元数据.他们自己没有作者.说标签的作者是提交的作者是错误的,因为其他任何人都可以用轻量级标签标记该提交.
另一方面,带注释的标签就像提交一样.这就是为什么带注释的标签在创建它们时也需要一条消息.他们有作者,描述等.
因此,要了解标记的作者,您必须具有带注释的标记策略.但是,据我所知,没有git repo元数据(.git目录)的历史.这意味着您无法知道谁删除了标记/分支/ etc,除非您的git提供程序具有审计/ log/this的机制.
按照这个关于恢复已删除标签的 git提示,您可以执行以下操作:
找到所有无法访问的标签git fsck:
git fsck --unreachable | grep tag
Run Code Online (Sandbox Code Playgroud)
然后,对于输出中的每个提交哈希,运行
git show COMMIT_HASH
Run Code Online (Sandbox Code Playgroud)
如果您想要一个shell脚本来列出所有无法访问(已删除)的标签以及相关人员(Tagger),您可以运行以下命令:
for commit in `git fsck --unreachable | grep tag | awk '{ print $3 }'`; do
git show $commit | grep -E "^(tag|Tagger)";
done
Run Code Online (Sandbox Code Playgroud)
编辑:这不回答问题的实际问题,但它告诉你如何查看索引中所有无法访问的标记的作者.
| 归档时间: |
|
| 查看次数: |
2392 次 |
| 最近记录: |