【问题标题】:How to recover old commit messages after accidentally exiting vim editor?意外退出 vim 编辑器后如何恢复旧的提交消息?
【发布时间】:2020-02-23 11:07:27
【问题描述】:

使用:Windows 10,带有 git 命令的命令行

我正在使用 git(遵循本教程:https://help.github.com/en/github/committing-changes-to-your-project/changing-a-commit-message)来更改一些旧消息以提交消息以向每个消息添加一些内容。我使用了命令:git rebase -i HEAD~10,这显示了最后 10 次提交。在我想要的提交消息中用“reword”命名每个“pick”后,我不知道如何退出和保存。因此,我决定单击命令提示符上的十字按钮,当我再次检查项目的 git log 时,最后 10 次提交都消失了。我怎样才能恢复它们?

【问题讨论】:

  • 请注意有史以来最常被引用的问题之一是如何退出 vim。另见Vi and Vim

标签: git vim command-line git-commit


【解决方案1】:

打开 bash 并再次转到存储库目录。正如行尾的蓝色字所指出的那样,您应该处于“rebase x/x”状态。

您可以使用 then "git rebase --abort" 回到执行交互式 rebase 命令之前的点。

(来源:https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt---abort

【讨论】:

  • 我在 Windows 10 上使用命令提示符。您知道该怎么做吗?
  • “git status”命令应该显示你是否处于变基状态。然后你可以应用 rebase abort 命令。
【解决方案2】:
  1. 运行git status 以检查您的分支是否也在rebase 进程中。如果你有 (develop|REBASE-i) 这样的东西,你只需执行 git rebase --abort 来中止 rebase。

  2. 如果您不在 rebase 进程中,则可以从 reflog 中恢复(假设您没有删除它们)。 使用git reflog 查找提交哈希码。然后用git reset --hard hashcode恢复它

【讨论】:

    猜你喜欢
    • 2021-11-29
    • 1970-01-01
    • 2018-11-10
    • 2011-11-27
    • 2011-04-25
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多