我正在做一些Git的高级用法,为了优化我的代码的测试运行来查询对象,所以请耐心等待下面的声音与大多数人的用法相差甚远用Git做。Git:探索远程对象
我想做类似git cat-file -p [...]
的东西,除了遥控器上的物体,不需要取物。即,我想说,“在远程origin
上,显示我提交A
,具体告诉我它的树的标识是什么;然后向我显示树的内容(blob和子树的列表)。”我不需要获取文件的实际内容,只是上面的信息。
我知道我可以从远程获取提交到我的本地仓库,并使用git cat-file
,但它会涉及从远程获取提交的所有父母,这可能需要很长时间。我需要这个很快,因为它是在一个程序中完成的,该程序应该在许多不同的存储库上每天运行数百次。
有没有办法做到上述而不提取提交?
谢谢,这可能会工作,但这意味着我现在必须添加查看url的逻辑,看看它是否是ssh,如果使用SSH库访问服务器......这是一个大混乱。我希望有一个更好的解决方案。 –
是的,你将不得不自己编程,没有比'git fetch'更低级别的命令,你可以指示你获取单独的提交。我不会把它称为一团糟,只是编程。我将从'system(“scp ...”)开始,或者以您选择的脚本语言调用系统命令的任何内容开始,并且如果由于子进程启动导致性能不佳,则只能使用SSH库。如果他们有http访问权限,那么它就是相同的答案,只是不同的protocoll。 – AnoE