标签: git-describe

我可以更改 git-describe 计算提交的方式吗?

我的问题与git describe: inexplicable commit countcommit countcalculation in git-describe有关,但与两个问题都不完全相同。我一直在当前项目中的功能分支上进行开发,并且一直用于获取功能分支的版本号,使用最近的标签和提交计数来生成我认为会单调递增的git describe版本号。(例如,我的分支目前在 v1.1.0 之前有 96 次提交,因此我在向用户报告的版本中已将其变为“版本 1.1.0.96”。)v1.1.0-96-g1234567

现在,master 分支最近被标记为 v1.2.0,我想将 1.2 版本中所做的更改合并到我的功能分支中。所以我将 master 合并到我的功能分支中,我认为这git describe会产生v1.2.0-1-g9876543. 但相反,我得到了v1.2.0-97-g9876543

我理解为什么会发生这种情况:正如 Git 手册中所述,git describe正在计算 产生的提交数以git log v1.2.0..9876543产生提交计数(97,因为我的分支有 96 次提交加上一次合并提交)。但我真正想要的是使用结果git log --ancestry-path v1.2.0..9876543,它只显示合并提交,因此会产生v1.2.0-1-g9876543我期望的结果。

有什么办法可以让我改变git describe使用git log --ancestry-path v1.2.0..9876543而不是的行为吗git log v1.2.0..9876543

而且,更重要的是,按照目前的方式这样做有什么好处git describe?如果我编写自己的工具来生成我一直期望的版本编号方案,那么我会失去什么?

顺便提一句。这是 git 存储库历史记录的快照,因此您可以直观地看到我刚才描述的内容。该feature/cmdline …

git merge git-describe

5
推荐指数
0
解决办法
592
查看次数

使用 git describe 使 Git 在分支上显示正确的标签

git describe 记录在案以找到

可从提交中访问的最新标签。

来源: git describe --help

我有点不明白一个标签是如何从提交中到达的。在分支中运行时,我没有看到我期望的行为,我不明白为什么。

https://github.com/nodemcu/nodemcu-firmware使用发布方案,其中所有更改都进入dev分支,然后master定期恢复。版本和带注释的标签是从master. git describe继续运行master会产生预期的结果。

运行时,dev我得到了一个两年前创建的标签。

~/Data/NodeMCU/nodemcu-firmware (dev) > git describe
2.0.0-master_20170202-439-ga08e74d9
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

类似的情况是我们为某些用户保留的旧版本的(或多或少)冻结分支。

~/Data/NodeMCU/nodemcu-firmware (1.5.4.1-final) > git describe
0.9.6-dev_20150627-953-gb9436bdf
Run Code Online (Sandbox Code Playgroud)

该分支创建之后此注释标签https://github.com/nodemcu/nodemcu-firmware/releases/tag/1.5.4.1-master_20161201只提交了一把落在因为分支。

git github git-describe

5
推荐指数
1
解决办法
2695
查看次数

Git描述了给出不同的标签

我用标签"Release_V1.0.0.4"标记了我的存储库.但这是我从"git describe"和"git describe origin"得到的.

[root pds_series] #git describe

Release_V1.0.0.2-22-g0859de9

[root pds_series] #git describe origin

Release_V1.0.0.2-18-gce2b24c

使用"git describe --all"和"git describe --tags",我得到了正确的标签.

[root pds_series] #git describe --all

标签/ Release_v1.0.0.4

[root pds_series] #git describe --tags

Release_v1.0.0.4

此外,通过以下命令,我得到了正确的标签.

[root pds_series] #git log --pretty = format:'%ad%h%d' - shared-commit --date = short -1

2012-11-15 0859de9(HEAD,Release_v1.0.0.4,master)

有谁知道这背后的原因?我该如何解决这个问题?

git git-tag git-describe

2
推荐指数
1
解决办法
1403
查看次数

git 描述的具体时间和原因不显示最新标签?

我有三个分支:devstagingmaster。当我这样做时,git describe结果是v0.1无论哪个分支被签出。

接下来我将描述进行更改以dev添加版本标签并合并staging到此master新版本的工作流程。

  1. git checkout dev
  2. 做一些改变
  3. git add --all&&git commit -m 'just some testing'
  4. git tag -a v0.19.0
  5. git push && git push --tags
  6. git checkout staging
  7. git merge dev
  8. git push
  9. git checkout master
  10. git merge staging
  11. git push

现在我describe在每个分支上运行:

- git checkout dev && git describe && git describe --abbrev=0

结果:

v0.19.0-1-ge147b2d
v0.19.0
Run Code Online (Sandbox Code Playgroud)

我所期望的:

v0.19.0-1-ge147b2d
v0.19.0
Run Code Online (Sandbox Code Playgroud)
  • git …

git git-tag git-describe

2
推荐指数
1
解决办法
2619
查看次数

git 标签不再被识别

我的 git 存储库遇到了一个奇怪的问题。它突然“停止”使用标签。我可以创建标签,我可以列出标签。我什至可以使用git checkout $taggit logs $tag。但是当使用git describe --exact-match标签时就不再检测到了?这目前破坏了我的管道,因为 master 上的标记提交似乎没有标记到 git 本身?一周前,它运行得非常完美。

$ git checkout master
$ git tag my-test-tag
$ git describe --exact-match
fatal: no tag exactly matches '4b2aa1dcf70eaf61640e6a983df82e1ffe3a5812'
Run Code Online (Sandbox Code Playgroud)

我已经尝试过运行git fsck --full,它只修复了一些悬空的提交,这对我来说看起来很好(因为我进行了很多变基)。

另一个有趣的事情是:该工具gitg没有显示这些“新”提交的任何历史记录。而对于“旧”承诺,一切都按预期进行。

有人知道这里发生了什么事吗?

在 3 台机器上测试,全部运行 git 版本 2.17.1。

git git-tag git-describe

1
推荐指数
1
解决办法
2874
查看次数

标签 统计

git ×5

git-describe ×5

git-tag ×3

github ×1

merge ×1