如何检查引入特定文件的git标签?

时间:2014-04-29 09:43:25

标签: git git-tag

我有一堆文件,我想知道它们被引入哪个版本。批量。这些版本标记为git。

在多个(~10)标签中快速检查大量(~80)文件数量的最简单方法是什么?

我可以编写一些自定义代码来检查目录中的每个标记,查找文件系统中存在的文件等。

是否有更快,更''git'的方法呢?

将git视为图形,我想纯实现是将历史记录跟踪到原始提交,然后转发到包含该提交的标记。但是,除非有一个工具已经这样做,否则这可能比检查标签更复杂。

1 个答案:

答案 0 :(得分:2)

git tag --contains <commit>打印给定提交“处于或”下游的所有标记。然后,您只需选择“第一个”此类标记(如果您的标记编号简单,例如,v1.7 v1.8 v2.0这可能是微不足道的,如果它们像{{1}那样复杂} v1.7a v1.7alpha v1.7-0 v1.7.0 1 然后您需要一些其他方法来选择正确的方法,例如最小化图表“距离“来自所有候选标签。”

v1.7打印第一个提交ID,其中给定的 git log --pretty=format:%H --diff-filter=A -1 -- path path dded(您可能需要A,或者可能是特定--no-renames级别和/或-M选项,用于调整git是否可以考虑重命名或复制文件,以查找提交。

我认为,将这两者结合起来可以很快到达那里。


1 我刚刚做了这些,我仍然不知道-C是在v1.7之前还是之后,也不知道是什么关系{ {1}}和v1.7.0必须有这两个。我之前看到过像“真实”之类的疯狂东西 - 通常是在市场营销人员接触到东西之后 - 尽管我这样做只是为了说明。