无法签出 git 提交
Impossible to checkout a git commit
我正在尝试检查我在 GitHub 上看到的特定提交:
https://github.com/mapbox/node-sqlite3/commit/b8907e79fc3fb52803b5a05c106948911dcd77ac
但是,本地结帐失败:
$ git checkout b8907e79fc3fb52803b5a05c106948911dcd77ac
fatal: reference is not a tree: b8907e79fc3fb52803b5a05c106948911dcd77ac
A git reset
因同样的错误而失败。
有什么想法吗?
那个提交 曾经 在那个存储库中一次。
它随后从存储库中删除,因此该存储库的新克隆不会获得该特定提交。 (删除有点棘手,但例如,这可能是因为拉取请求被修改——提交 是 因为拉取请求,然后拉取请求本身更新为新的-and-improved 提交。替换提交是最终使用的提交,原始提交会在几天后自行过期。)
它仍然存在于 GitHub 上,因为 GitHub 并不总是立即清除所有内容。然而,在这种情况下,他们已经很长时间没有清理干净了,而且还不清楚为什么它仍然可以通过 GitHub 网络界面访问。此提交也无法通过拉取请求访问(有 218 个拉取请求挂在提交上,但这不在其中)。我想知道来自 "issues" 页面的链接是否也可以在 GitHub.
上保持其他方式无法访问的提交。
通过其在 GitHub 上的父链接向后跟踪此提交,揭示了整个提交序列,这些提交似乎在某些时候已被新的和改进的版本所取代。
根据 GitHub 在其每个存储库中运行 git gc
的频率,该提交(如果已删除)可能仍在 GitHub 端。
然后一个技巧是对那个旧提交使用 GitHub Tags API to create a tag object。
您可以执行 git fetch --tags
,这足以启用该提交的本地签出。
我正在尝试检查我在 GitHub 上看到的特定提交:
https://github.com/mapbox/node-sqlite3/commit/b8907e79fc3fb52803b5a05c106948911dcd77ac
但是,本地结帐失败:
$ git checkout b8907e79fc3fb52803b5a05c106948911dcd77ac
fatal: reference is not a tree: b8907e79fc3fb52803b5a05c106948911dcd77ac
A git reset
因同样的错误而失败。
有什么想法吗?
那个提交 曾经 在那个存储库中一次。
它随后从存储库中删除,因此该存储库的新克隆不会获得该特定提交。 (删除有点棘手,但例如,这可能是因为拉取请求被修改——提交 是 因为拉取请求,然后拉取请求本身更新为新的-and-improved 提交。替换提交是最终使用的提交,原始提交会在几天后自行过期。)
它仍然存在于 GitHub 上,因为 GitHub 并不总是立即清除所有内容。然而,在这种情况下,他们已经很长时间没有清理干净了,而且还不清楚为什么它仍然可以通过 GitHub 网络界面访问。此提交也无法通过拉取请求访问(有 218 个拉取请求挂在提交上,但这不在其中)。我想知道来自 "issues" 页面的链接是否也可以在 GitHub.
上保持其他方式无法访问的提交。通过其在 GitHub 上的父链接向后跟踪此提交,揭示了整个提交序列,这些提交似乎在某些时候已被新的和改进的版本所取代。
根据 GitHub 在其每个存储库中运行 git gc
的频率,该提交(如果已删除)可能仍在 GitHub 端。
然后一个技巧是对那个旧提交使用 GitHub Tags API to create a tag object。
您可以执行 git fetch --tags
,这足以启用该提交的本地签出。