【问题标题】:Get first commit if no tag is existing [duplicate]如果不存在标签,则获取第一次提交 [重复]
【发布时间】:2021-10-16 16:53:09
【问题描述】:

为了得到最新标签的提交,我在做

$(git rev-parse $(git describe --tags --abbrev=0))

但是如果根本没有标签,就会抛出错误fatal: No names found, cannot describe anything。 所以万一根本没有标签,我想得到第一次提交。我该怎么做?

$(git rev-parse $(git describe --tags --abbrev=0 || <?-- get the very first commit -->))

【问题讨论】:

  • 我会抢先标记第一个提交;该标签要么被忽略(如果已经有更高版本的标签)要么防止git rev-parse失败。
  • @chepner 哦,这很好。简单,但没有看到这个选项...

标签: git shell


【解决方案1】:

在存储库中获取第一个提交的一种方法是使用git rev-list 并以reversetopological 顺序询问提交列表:

git rev-list --topo-order --reverse --all | head -1

这将返回整个历史图表中第一次提交的 SHA-1 哈希,无论它是何时创建的。

【讨论】:

  • 或者至少,一个第一次提交——可能有多个第一次提交...
猜你喜欢
  • 2020-09-06
  • 1970-01-01
  • 2015-02-02
  • 2015-02-15
  • 2013-11-08
  • 2019-06-13
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多