我正在尝试使用 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:'致命:路径'versions/library-2.6/Dockerfile'在'中不存在12cf56252dcb1535e0fbeb9c3e3586551af671ea''"
路径实际存在于该提交中: 链接到提交
但是,页面上出现警告说:“此提交不属于此存储库上的任何分支,并且可能属于存储库外部的分支。”
如何使用 gitpython 获取此提交中该文件的内容?
获取孤立的提交:
git fetch origin <full-40-char-sha>
# for example:
git fetch origin 12cf56252dcb1535e0fbeb9c3e3586551af671ea
这假设提交仍然存在于您要从中获取的回购协议中(并且您的遥控器称为
origin
)。对于许多基于服务的 SCM 工具,包括 GitHub 和 Azure DevOps,默认情况下,推送的提交永远不会被垃圾收集,并且将永远通过它们的完整哈希保持可访问性。