关于检出某个提交
通过签出某次提交,你可以在无需创建新的分支或修改现有分支的情况下查看存储库的过去状态。 这在调试时非常有用,因为它允许你查看以前的提交中,存储库是否存在错误。
签出提交会使存储库处于“分离的 HEAD”状态。 在 Git 术语中,“HEAD”是参考指向存储库中某个命名分支末端或最新提交的引用。 “分离的 HEAD”状态意味着 HEAD 引用特定的提交,但不是指向存储库中的命名分支。
注意
切换分支时,在“拆离的 HEAD”状态下所做的任何提交都将丢失,因为这些提交不是在命名分支上进行的。 如果需要恢复丢失的提交,请参阅“故障排除”。
检出提交
-
在左边栏中,单击“历史记录”。

-
右键单击要签出的提交,然后选择“签出提交”。
 -
在 仓库状态栏中的“Current Branch”项现在将显示“Detached HEAD”,以及签出提交的 SHA。

-
若要退出“分离的 HEAD”状态,需要切换分支。 有关详细信息,请参阅“在 GitHub Desktop 中管理分支”。
故障排除
可以使用 Git 命令行中的 git reflog 命令恢复在“分离的 HEAD”状态下进行的提交。 可以转到菜单栏,选择 “存储库”,然后单击 “在命令行中打开”,从 GitHub Desktop 在命令行中打开存储库。
`git reflog` 命令将显示存储库中发生的事件的输出,包括提交。 下面是 `git reflog` 命令的示例输出:
81fa9136f8 (HEAD -> main) HEAD@{0}: checkout: moving from 8bd5e736a27a52a7e36a856b30e6f0582d341aa1 to main
8bd5e736a2 HEAD@{1}: commit: testing out a feature
22fa76c125 HEAD@{2}: checkout: moving from main to 22fa76c1250a2847305b9325752d941dbaa55983
`8bd5e736a2 HEAD@{1}: commit: testing out a feature` 行是我们要恢复的提交,因为它是在存储库处于“分离的 HEAD 状态”时进行的提交。 若要恢复,可以运行 `git cherry-pick 8bd5e736a2`,将提交应用到您存储库的当前分支。
其他阅读材料
- Git 文档中的分离的 HEAD
- Git 文档中的 Git cherry-pick