0

我正在尝试使用 Doxygen 为我的 Android 项目生成文档,并且我想使用该FILE_VERSION_FILTER标签自动获取任何文件的数字版本。

我知道 Git 使用哈希作为提交的 id,但是有没有办法获取单独文件的数字版本?

为了更好地理解我想要做什么,你可以从Doxygen 文档中看到这个例子

但是,我想使用 git 而不是 CVS 或 SVN。Git甚至可以吗?

[我在 Ubuntu 上,将使用 bash 作为 shell]

4

1 回答 1

3

Git不存储存储库中对象的任何数字版本。我想您想知道对象被更改了多少次(存储在存储库中),这很容易获得:使用git log,告诉它为每次提交生成一行文本并计算其输出的行数:

要计算foo存储在存储库中可从当前分支访问的文件版本,请运行以下命令:

git log --oneline HEAD -- foo | wc -l

您可以替换HEAD为分支名称以获取可从该分支访问的提交数,该分支将更改存储在文件中foo,或者您可以完全删除它。

请记住,对于文件的每个版本,您获得的数字并不是唯一的,它取决于您用于获取日志的路径。

检查修订图的下一个片段:

* commit #4 (merge test into master)
|\
* | commit #3 (on branch master)
| * commit #2 (on branch test)
|/
* commit #1 (on master)

假设该文件foo是在提交 #1 上添加的,并在显示的所有其他提交上进行了修改。

在不同的提交上运行上面的命令将产生以下值:

+--------+---------------+
| commit | # of versions |
+--------+---------------+
|   #1   |  1            |
|   #2   |  2            |
|   #3   |  2            |
|   #4   |  4            |
+--------+---------------+
于 2015-01-13T09:57:56.060 回答