gpt4 book ai didi

linux - 从 Git 获取单个文件版本

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:10:12 24 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

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 |
+--------+---------------+

关于linux - 从 Git 获取单个文件版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27918813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com