【发布时间】:2023-02-22 01:59:27
【问题描述】:
我正在尝试使用 gitpython 获取特定提交上特定文件的内容,如下所示:
repo.git.show('{}:{}'.format(12cf56252dcb1535e0fbeb9c3e3586551af671ea, '%s/%s' % ('versions/library-2.6' ,'Dockerfile')) 但我收到此错误:
“Cmd('git')由于:退出代码(128)cmdline:git show 12cf56252dcb1535e0fbeb9c3e3586551af671ea:versions/library-2.6/Dockerfile stderr:'fatal:路径'versions/library-2.6/Dockerfile'在'12cf56252dcb3afbe15635e15635e中不存在''"
该路径实际存在于该提交中: link to the commit
然而,页面上出现警告说:“此提交不属于此存储库上的任何分支,并且可能属于存储库外部的分支。”
如何使用 gitpython 获取此提交中该文件的内容?
【问题讨论】:
-
你在本地有提交
12cf56252dcb1535e0fbeb9c3e3586551af671ea吗?检查git show 12cf56252dcb1535e0fbeb9c3e3586551af671ea -
不,我已经克隆了存储库,如果它没有随回购一起提供,我该如何获得该提交? @phd
-
警告对我来说似乎很清楚。该提交不存在于存储库的任何分支中。这并不是说文件
versions/library-2.6/Dockerfile不存在。这只是说从该提交中检索给定路径是不可能的,因为该提交不存在。你从哪里得到的哈希值? -
由于提交不在任何分支上,垃圾收集器迟早会删除它。您最好找出分支上的提交。在寻找什么?
library-2.6?分支机构rootfs/library-2.6呢?
标签: python git github commit gitpython