2

有没有办法获取包含特定文件的 git 标签列表?

4

4 回答 4

4

这就是我为获取包含特定文件的标签列表所做的操作:

1) 获取介绍文件的第一个提交 ID。您可以使用 git log 命令。

git log -- <path/to/filename>

2)列出包含提交ID的标签。

git tag --contains <CommitId>

这可能是错误的。所以,我会等待其他人的答案。谢谢。

于 2012-07-12T09:42:42.760 回答
1

只需管道到 xargs 并检查每个标签:

git tag | xargs -i{} bash -c 'git ls-tree -r {} | grep yourfile >/dev/null && echo {}'
于 2012-07-12T09:36:13.160 回答
1
git for-each-ref 'refs/tags/*' | while read rev type name
do
  [ -n "$(git ls-tree $rev -- "$filename")" ] && echo $name
done | sed -e 's/^refs\/tags\///'
于 2012-07-12T09:46:14.317 回答
0

不知道如何只用 git 来做,但这是我与 bash 斗争的结果:

for tag in `git tag -l`; do [ -n "`git ls-tree $tag path/to/file`" ] && echo $tag; done
于 2012-07-12T09:15:40.680 回答