如何从分支外部签出 github 提交

How can I checkout a github commit from outside a branch

具体来说,我的目标是访问这个特定的提交 https://github.com/ankidroid/Anki-Android/commit/73afde67830bb6e49388d0e3a135e945fdbbfc4a

问题是提交在特定分支之外。所以我不能只获取它的分支。 git fetch ankidroid 73afde6(其中 ankidroid 是此遥控器的本地名称)或 git pull ankidroid 73afde6 失败。如果我执行 git fetch 命令至少会成功,但提交 73afde6 仍然未知。

一些托管站点不允许您通过哈希 ID 获取提交。如果您使用这样的托管站点,您 必须 找到一些 name 允许获取提交。幸运的是,您正在使用 允许通过原始哈希 ID 获取。1

诀窍是您必须使用完整的哈希 ID。即,运行:

git fetch ankidroid 73afde67830bb6e49388d0e3a135e945fdbbfc4a

命令:

git fetch ankidroid 73afde6

不够。

(您可能希望为提交指定一个可以在本地存储库中引用的名称,例如 git fetch ankidroid 73afde67830bb6e49388d0e3a135e945fdbbfc4a:refs/heads/foo。这会在您的本地存储库中创建一个新的分支名称 foo,指向获取的提交。假设您当前没有名为 foo 的分支;如果有,请替换为其他名称。)


1新的部分克隆功能需要这个,所以它变得越来越普遍。