mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
1837 字
5 分钟
Github-Checkout Commit
2026-01-29
统计加载中...

生活不可能像你想象得那么好,但也不会像你想象得那么糟。#


检出提交—Checkout Commit#

1. Checkout Commit是什么?#

我们在更新项目时可能出错导致后期版本出现各种bug,这时我们需要回到之前正常的版本,这时就可以使用 中的 “检出提交”-Checkout Commit(以GitHub Desktop为例) ,它可以帮助我们回到之前正常的版本,下载之前的版本代码,再加以修改、调试,是一个非常实用的版本控制工具。

2. 检出提交的作用?#

  1. 时光机功能
  • 查看项目在历史某一时刻的状态
  • 可以查看、编辑、运行旧版本的代码
  • 帮助你理解项目的演变过程
  1. 调试和问题定位
  • 如果当前代码有问题,可以回到之前正常的版本
  • 定位问题是在哪个提交引入的
  • 对比不同版本间的差异
  1. 临时回退
  • 临时使用旧版本进行测试
  • 无需创建新分支就能查看历史代码
  1. 创建修复分支
  • 基于某个历史提交创建新分支进行修复
  • 特别是当需要在旧版本上修复bug时

3. 使用方法#

  1. 基本操作步骤:
  • 打开 “GitHub Desktop”,找到项目
  • 切换到 History 标签页
  • 找到目标版本右键点击提交记录
  • 选择 “Checkout this commit(检出提交)
  1. 详细操作:

    • 检出提交后,上方显示HEAD指针分离,位于abc1234无法发布分离的HEAD指针
    • 找到项目本地仓库目录,修改所需要的文件,然后回到 GitHub Desktop 进行提交
    • 点击abc1234右侧下拉箭头,选择main,在右侧选择新建分支,点击刚才的abc1234,输入描述,点击创建分支
    • 在”github desktop”主页面上方分支选项卡下拉选择合并分支,选择刚才创建的分支,点击合并
    • 合并完成后,查看项目文件,确认修改无误,点击发布,发布成功。
  2. 几种常见场景的操作: 3.1查看历史代码

    • 当前分支:main(最新提交)
    • 找到想查看的历史提交(比如3天前)
    • 右键
      • Checkout this commit
      • 现在工作区显示的就是那个时刻的代码
      • 查看完后回到最新:切换到 main 分支

    3.2 基于历史提交创建分支

    • 右键点击历史提交
    • 选择 “Create branch from commit”
    • 输入新分支名(如:fix/old-bug)
    • 新分支会自动切换到这个历史提交
    • 现在可以在这个分支上修改

    3.3定位问题提交

    • 当前版本有问题
    • 怀疑是最近某个提交导致的
    • 一个个向前检查历史提交
    • 右键 Checkout 逐个测试
    • 找到引入问题的那个提交
    • 基于那个提交创建修复分支

⚠️ 重要注意事项

  1. “分离的 HEAD” 状态 分离的 HEAD 状态当你检出某个历史提交(而不是分支)时,会进入 Detached HEAD 状态 在这个状态下提交代码会很危险,因为提交不属于任何分支 GitHub Desktop 会有明确提示

  2. 如何识别分离的 HEAD 状态

  • 在 GitHub Desktop 顶部会显示: Current branch: (Detached at abc123)

  • 安全操作建议

  • 只读操作:如果只是查看,可以在分离状态需要修改时:

    • 一定要先创建新分支,在分离状态时,GitHub Desktop 会提示:
    • “Create a new branch from this commit”
    • 返回主分支:
    • 点击分支选择器 → 选择你的主分支(如 main)

3.与相关功能的区别#

功能作用区别
Checkout Commit查看/回到某个历史提交临时查看,会进入分离状态
Revert Commit撤销某个提交的更改创建新提交来撤销旧提交
Reset to Commit重置到某个提交会删除之后的提交历史
Reset to Commit重置到某个提交会删除之后的提交历史
Create Branch from Commit基于历史提交创建新分支创建新分支,安全进行修改

4.github desktop“重置到提交”#

  • 如果在 GitHub Desktop 的历史记录中,右键菜单里的“重置”选项是灰色的(无法点击),通常是因为当前有未提交的更改,或者处于某种保护状态。
  • 为了绕过这个问题,最快、最稳妥的方法是使用 GitHub Desktop 内置的命令行工具直接输入指令回退。
  1. 使用命令行强制回退(最快解决)
  • 这个方法可以绕过界面限制,直接回到你想要的版本。

    • 在 GitHub Desktop 界面中,点击顶部菜单栏的 Repository(仓库),选择 Open in Terminal(在终端中打开)(或者是 “Open in Command Prompt”)。 快捷键:在 Windows 上通常是 Ctrl + ` (反引号) 在打开的黑色命令行窗口中,输入以下命令并回车:
git reset --hard HEAD~10

💉命令解释:

  • HEAD~10:“当前版本往前数的第 10 个版本”。

如果你想回退更多或更少,修改数字即可(例如 HEAD~5 回退 5 个版本)。

  • hard: 表示完全丢弃这 10 个版本的代码更改(回到那个版本的样子)。

  • 回车执行后,你会发现 GitHub Desktop 界面“闪”一下,然后显示已经回到了旧版本,且左侧“Changes”栏是空的。

  1. 先清理未提交的更改(解决界面灰色问题) 如果你一定要用鼠标点击,必须先解决为什么按钮是灰色的。
  • 看 GitHub Desktop 左侧的 “Changes”(更改) 面板。 如果里面有文件(有蓝点或数字),说明你有未保存的工作。
    • 如果你不需要这些修改,右键点击文件选择 “Discard All Changes”(放弃所有更改)。
    • 如果你需要保留这些修改,暂时不想提交,可以在文本框随便输入点文字,点击 “Commit to main” 先提交一次。
  • 当左侧 “Changes” 栏变空后,再去 “History” 栏右键点击旧版本,你会发现 “Reset” 选项现在可以点击了。
  1. 关键的最后一步:强制推送

无论你用哪种方法回退,代码只是在你自己的电脑上回退了。GitHub 网站上(远程仓库)依然是那 10 个错误版本。

  • 你需要进行“强制推送”来覆盖网上的记录:

  • 回退成功后,GitHub Desktop 顶部会出现一个 “Push origin” 按钮,旁边可能有一个黄色的警告图标或数字提示。

  • 点击按钮旁边的下拉箭头(或者直接点击推送,它会报错)。

  • 选择 “Force Push”(强制推送)。

  • 如果是直接推送报错,提示 “Update is rejected”,点击错误提示框里的 “Begin Push” 或 “Force Push” 选项。

4. 常见问题#

  1. 不小心在分离状态提交了代码?
解决方案
创建新分支保存这个提交
切换回主分支
如果需要,合并或cherry-pick这个提交
  1. 检出提交后项目跑不起来了?
解决方案 !!可能原因:
缺少依赖(package.json 不同)
数据库迁移不一致
配置文件不同
!!解决方案:
查看提交时的 package.json
安装对应版本的依赖
检查相关配置
  1. 最佳实践
最佳实践
查看代码用:在分离状态只查看不修改
修改代码用:先创建分支再修改
定期提交:好的提交历史让检出更有用
写清晰的提交信息:方便理解每个提交的作用
重要时刻打标签:对重要版本使用 git tag
记住黄金法则:如果只是看看,随便检出;如果要修改,先建分支
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Github-Checkout Commit
https://yqamm.pages.dev/posts/20260129/2026012901检出/
作者
QTY
发布于
2026-01-29
许可协议
CC BY 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00