我正在寻找是否有一种方法可以知道这个提交的ID来获得隐藏的提交。我正在做一个网络挑战,我需要这些信息来达到这个目的。或者是否有一种方法可以只使用HTTP请求来进行远程拉取
ulydmbyx1#
首先你必须定义“隐藏提交”。什么让一个提交“隐藏”?正如the git config documentation所描述的,Git * 可以通过transfer.hideRerfs或receive.hideRefs或uploadpack.hideRefs来隐藏特定的 refs(名称),但这会隐藏 names,而不是提交。分别有以下配置选项:
transfer.hideRerfs
receive.hideRefs
uploadpack.hideRefs
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。
git fetch
1条答案
按热度按时间ulydmbyx1#
首先你必须定义“隐藏提交”。什么让一个提交“隐藏”?
正如the git config documentation所描述的,Git * 可以通过
transfer.hideRerfs
或receive.hideRefs
或uploadpack.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。