如何从分支外部签出 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 允许获取提交。幸运的是,您正在使用 github, 允许通过原始哈希 ID 获取。1
诀窍是您必须使用完整的哈希 ID。即,运行:
git fetch ankidroid 73afde67830bb6e49388d0e3a135e945fdbbfc4a
命令:
git fetch ankidroid 73afde6
不够。
(您可能希望为提交指定一个可以在本地存储库中引用的名称,例如 git fetch ankidroid 73afde67830bb6e49388d0e3a135e945fdbbfc4a:refs/heads/foo
。这会在您的本地存储库中创建一个新的分支名称 foo
,指向获取的提交。假设您当前没有名为 foo
的分支;如果有,请替换为其他名称。)
1新的部分克隆功能需要这个,所以它变得越来越普遍。
具体来说,我的目标是访问这个特定的提交 https://github.com/ankidroid/Anki-Android/commit/73afde67830bb6e49388d0e3a135e945fdbbfc4a
问题是提交在特定分支之外。所以我不能只获取它的分支。 git fetch ankidroid 73afde6
(其中 ankidroid 是此遥控器的本地名称)或 git pull ankidroid 73afde6
失败。如果我执行 git fetch
命令至少会成功,但提交 73afde6
仍然未知。
一些托管站点不允许您通过哈希 ID 获取提交。如果您使用这样的托管站点,您 必须 找到一些 name 允许获取提交。幸运的是,您正在使用 github, 允许通过原始哈希 ID 获取。1
诀窍是您必须使用完整的哈希 ID。即,运行:
git fetch ankidroid 73afde67830bb6e49388d0e3a135e945fdbbfc4a
命令:
git fetch ankidroid 73afde6
不够。
(您可能希望为提交指定一个可以在本地存储库中引用的名称,例如 git fetch ankidroid 73afde67830bb6e49388d0e3a135e945fdbbfc4a:refs/heads/foo
。这会在您的本地存储库中创建一个新的分支名称 foo
,指向获取的提交。假设您当前没有名为 foo
的分支;如果有,请替换为其他名称。)
1新的部分克隆功能需要这个,所以它变得越来越普遍。