获取最后一次提交';没有克隆的git中的sha1

获取最后一次提交';没有克隆的git中的sha1,git,github,Git,Github,我想从存储库中获取最后一次提交,而不进行克隆。目前我使用的是git ls remote | cut-c1-7。这有助于我在不克隆存储库的情况下获取最新提交的sha1。我可以以某种方式使用此命令或任何其他命令来获取最后一次提交吗?通常不可能 在特定情况下,这可能是可能的 让我们定义几个术语,以便本讨论的其余部分有意义: B是您感兴趣的分支名称,即您正在运行git ls remote B IB是从B获得的标识(SHA-1哈希),即分支上的tip提交 “倒数第二个”提交是IB的父级。如果IB是合并,

我想从存储库中获取最后一次提交,而不进行克隆。目前我使用的是git ls remote | cut-c1-7。这有助于我在不克隆存储库的情况下获取最新提交的sha1。我可以以某种方式使用此命令或任何其他命令来获取最后一次提交吗?

通常不可能

在特定情况下,这可能是可能的

让我们定义几个术语,以便本讨论的其余部分有意义:

  • B是您感兴趣的分支名称,即您正在运行
    git ls remote B
  • IB是从B获得的标识(SHA-1哈希),即分支上的tip提交
  • “倒数第二个”提交是IB的父级。如果IB是合并,则它是第一个父级(您没有指定这一点,但这似乎是一个合理的假设;如果它是错误的,请对下面的过程进行任何更改)。我们将此ID称为W,表示“想要”
你的任务是识别W

没有帮助或(可能是浅层的)克隆,您无法执行此操作。如果你有一个克隆,找到W是很简单的:
git rev parse B^
产生W。(如果克隆很浅,深度2或更多就足够了,因此找到W。)如果你没有克隆,你必须设法让遥控器给你W

如果您的远程设备提供了web界面,则可能允许您读取提示提交,从而找到其父ID。它甚至可能有一个实际的API(REST接口或其他什么),通过它您可以遍历提交图,给它IB并获得父ID列表。但除了克隆,没有其他标准接口

请注意,如果您制作分支B深度为2的单分支浅克隆,则将获得提交IB及其所有父级,包括W。因此,这是一种明显的方法,可以做最少的工作,同时确保能够找到W。但这涉及到制作克隆,您已经排除了这一点


Edit:我刚刚意识到它还有一个
github
标签,所以您可能会特别询问github。在github的例子中,有一个API,您可以简单地使用它。

这在一般情况下是不可能的

在特定情况下,这可能是可能的

让我们定义几个术语,以便本讨论的其余部分有意义:

  • B是您感兴趣的分支名称,即您正在运行
    git ls remote B
  • IB是从B获得的标识(SHA-1哈希),即分支上的tip提交
  • “倒数第二个”提交是IB的父级。如果IB是合并,则它是第一个父级(您没有指定这一点,但这似乎是一个合理的假设;如果它是错误的,请对下面的过程进行任何更改)。我们将此ID称为W,表示“想要”
你的任务是识别W

没有帮助或(可能是浅层的)克隆,您无法执行此操作。如果你有一个克隆,找到W是很简单的:
git rev parse B^
产生W。(如果克隆很浅,深度2或更多就足够了,因此找到W。)如果你没有克隆,你必须设法让遥控器给你W

如果您的远程设备提供了web界面,则可能允许您读取提示提交,从而找到其父ID。它甚至可能有一个实际的API(REST接口或其他什么),通过它您可以遍历提交图,给它IB并获得父ID列表。但除了克隆,没有其他标准接口

请注意,如果您制作分支B深度为2的单分支浅克隆,则将获得提交IB及其所有父级,包括W。因此,这是一种明显的方法,可以做最少的工作,同时确保能够找到W。但这涉及到制作克隆,您已经排除了这一点


Edit:我刚刚意识到它还有一个
github
标签,所以您可能会特别询问github。在github的例子中,有一个API,您可以简单地使用。

如果没有某种克隆/获取,这似乎是不可能的:如果没有某种克隆/获取,这似乎是不可能的: