有了git describe
你可以得到提交的数目自上次标签.如果您只有标记和提交数量,那么显示所描述的提交的最佳方式是什么?
我知道你可以使用git log tag..
它并将它管道到一个执行计数的脚本但是我希望有一个类似的更优雅的解决方案git show tag~n
.
要添加更多上下文,我们计划使用git describe
创建版本号,例如使用
$ git describe
v1.5-39-g5ede964
Run Code Online (Sandbox Code Playgroud)
我们会用foo_1.5.39.我们想要做的是知道1.5.39意味着在v1.5标签之后的第39次提交,找到提交,即找到g5ede964.正如评论中所指出的,v1.5之后的第39次提交可能并不是唯一的.所以也许更好的方式来问这个是什么是找到所有提交X的最佳方式,如果HEAD指向X git describe
将返回
v1.5-39-*****
.
小智 27
尝试
git rev-list tag..HEAD --count
Run Code Online (Sandbox Code Playgroud)
要么
git rev-list tag.. --count
Run Code Online (Sandbox Code Playgroud)
他们的意思是一样的.
Jus*_*hms 10
如果您要查找自上一个标记以来的提交数量,以下内容对我有用
git rev-list `git rev-list --tags --no-walk --max-count=1`..HEAD --count
Run Code Online (Sandbox Code Playgroud)
你可以:
git log --oneline tag.. | wc -l
Run Code Online (Sandbox Code Playgroud)
这会给你提交的数量
在一般情况下,你所要求的是不可能的.如果您的历史记录中有任何合并,则单独提交的数量无法告诉您任何内容.
例如,给定以下repo结构:
a - b - c - d - h
\ /
e - f - g
Run Code Online (Sandbox Code Playgroud)
放置标签后a
,除了SHA1之外,输出git describe d
和输出git describe g
相同:
> git describe d
tag-3-ge8dca33
> git describe g
tag-3-g4fecc2e
Run Code Online (Sandbox Code Playgroud)
也就是说,如果你没有同时进行一堆并行分支,那么你可以将一个给定的提交号码解析回一个提交,但是如果你在一个提交时甚至有一个活动的分支.你的标签然后这可能不起作用.
如果您需要可靠的版本号,则应该坚持使用显式标签.
归档时间: |
|
查看次数: |
11911 次 |
最近记录: |