【发布时间】:2017-03-05 13:07:06
【问题描述】:
我目前正在开发一个自动增加版本号的系统。版本号当前存储在使用主要版本、次要版本和补丁版本的文件中。我想过摆脱补丁以防止每次都必须手动更改版本号。 然后,补丁将简单地是自上次更改文件(或版本,如果也可以)更改后的提交次数。
这可能吗?
【问题讨论】:
标签: git commit git-commit counting
我目前正在开发一个自动增加版本号的系统。版本号当前存储在使用主要版本、次要版本和补丁版本的文件中。我想过摆脱补丁以防止每次都必须手动更改版本号。 然后,补丁将简单地是自上次更改文件(或版本,如果也可以)更改后的提交次数。
这可能吗?
【问题讨论】:
标签: git commit git-commit counting
是的,我们可以列出对特定文件所做的所有提交。 git log --follow filename 但我不确定计数。
【讨论】:
git rev-list --count $(git log --follow -1 --pretty=%H filename)..HEAD
X..Y 表示法的意思是“从Y 可达的提交集减去从X 可达的集”。通常,向Y 中的集合添加 1 个提交会使结果计数增加 1 — 但是当您向 Y 添加一个 merge 提交时,您通常会添加多于 1。这很好 只要你不希望它一次只增加一个。 (在合并的“另一边”引入的提交仍然存在,因此计数从那里再次增加。)