我想在没有克隆的情况下从存储库中获取第二个最后一次提交。目前我正在使用git ls-remote <repo> <branch> | cut -c1-7
。这有助于我在不克隆存储库的情况下获取最新提交的sha1。我可以用某种方式或任何其他命令来获取第二次提交吗?
答案 0 :(得分:0)
一般来说,这是不可能的。
在特定情况下可能会这样。
让我们定义一些术语,以便本讨论的其余部分有意义:
git ls-remote remote B
。您的任务是识别 W 。
如果没有协助或(可能是浅层)克隆,您无法做到这一点。如果你有一个克隆,找到 W 是微不足道的:git rev-parse B^
产生 W 。 (如果克隆很浅,那么深度为2或更多就足以找到 W 。)如果你没有克隆,你必须以某种方式让遥控器给你 w ^
如果您的遥控器提供了一个Web界面,那么您可以阅读提示提交,从而找到其父ID。它甚至可以有一个实际的API(REST接口或其他),您可以通过它遍历提交图,为其提供 I B 并获取父ID列表。但除了克隆之外,没有标准接口。
请注意,如果您创建分支 B 深度2的单分支浅克隆,那么将提交 I B 并且所有它的父母,包括 W 。因此,这是做最少量工作的明显方法,但保证能够找到 W 。但这涉及制作一个你已经排除的克隆。
修改:我刚刚意识到它还有一个github
标记,因此您可能会专门询问 有关github的信息。在github的案例中, 是一个API,您只需obtain information about IB directly。