【问题标题】:Git get latest commit after reset -hard重置后Git获取最新提交-hard
【发布时间】:2012-08-29 01:15:54
【问题描述】:

我之前做了一个 git reset -hard FETCH_HEAD ,但我无法恢复我最近的提交。

HEAD@{0}: checkout: moving from master to adding_events
HEAD@{1}: checkout: moving from adding_events to master
HEAD@{2}: checkout: moving from master to adding_events
HEAD@{3}: checkout: moving from 3458u9qfhaushf
HEAD@{4}: commit: Testing Gemfile edit
HEAD@{5}: checkout: moving from master to fajesnfkj24b
HEAD@{6}: commit: Changed Gemfile after reset
HEAD@{7}: reset: moving to FETCH_HEAD
HEAD@{8}: commit: Added Event Show page, Upload Event Pic
HEAD@{9}: commit: Add Category Database and Event pages
HEAD@{10}: merge adding_events: Fast-forward
HEAD@{11}: checkout: moving from adding_events to master
HEAD@{12}: commit: Replaced Post with Events

当我在我的主分支上执行 git status 时,会出现这种情况

Your branch and 'origin/master' have diverged,
and have 1 and 5 different commits each, respectively.

当我在我的目录中打开应用程序时,12 次提交“Replaced Post with Events”是显示的最新文件。我想回到我上次提交的 8 个“添加了活动显示页面,上传活动图片”...有什么想法吗?

【问题讨论】:

    标签: git-reset


    【解决方案1】:

    你可以这样做:

    git reset --hard HEAD@{8}
    

    将当前分支指针重置为特定的提交。

    【讨论】:

    • 它让我感动到“HEAD 现在在 6ed2d19 修复测试”。我应该改用 FETCH_HEAD 吗?
    • 好吧,HEAD@{8} 的名称取决于当前分支头的 reflog 中的第 8 个条目(每次更新 reflog 时都会移动)。 git reflog 命令通常会在左侧栏中显示提交 ID(您的原始帖子中似乎省略了),我建议直接使用提交 ID 以避免混淆。
    猜你喜欢
    • 2013-03-06
    • 2021-10-13
    • 2011-10-20
    • 1970-01-01
    相关资源
    最近更新 更多