git 如何使用ID查找隐藏提交

carvr3hs  于 2022-12-10  发布在  Git
关注(0)|答案(1)|浏览(152)

我正在寻找是否有一种方法可以知道这个提交的ID来获得隐藏的提交。我正在做一个网络挑战,我需要这些信息来达到这个目的。或者是否有一种方法可以只使用HTTP请求来进行远程拉取

ulydmbyx

ulydmbyx1#

首先你必须定义“隐藏提交”。什么让一个提交“隐藏”?
正如the git config documentation所描述的,Git * 可以通过transfer.hideRerfsreceive.hideRefsuploadpack.hideRefs来隐藏特定的 refs(名称),但这会隐藏 names,而不是提交。
分别有以下配置选项:

  • uploadpack.allowTipSHA1InWant
  • uploadpack.allowReachableSha1InWant
  • uploadpack.allowAnySHA1InWant

适用于git fetch操作。从某个客户机向某个服务器发出的git fetch可以提供特定的OID(以前称为“SHA-1 ID”)。服务器可以根据这些配置项选择接受或拒绝此按OID的请求。但是,如文档所述:
...客户端可能能够通过gitnamespaces[7]手册页的“SECURITY”(安全)部分中描述的技术窃取对象;最好将私有数据保存在单独的存储库中。
这些散列ID(OID)不会以任何方式“隐藏”,但对象可能(或可能不会)变得难以或不可能访问,除非已经描述过。然而,当使用promisor包时,fetch protocol v2 * 总是 * 允许任何OID,因此上述三个配置项无论如何都变得无关紧要。
GitHub还允许通过URL访问提交对象,而不需要通过git fetch。这与Git基本上没有任何关系:它只是GitHub。

相关问题