git - 撤消 git commit amend 并保留索引中的更改

标签 git

我在 rebase 后解决了巨大的 merge 冲突并错误地运行了 git commit --amend而不是git commit .
现在 git 认为之前的提交包含了我所有的更改。 有没有办法撤消git commit --amend并在 merge 后索引我的所有更改?

最佳答案

首先获取您的存储库的副本,以防我在说明中写下任何错误的内容。

您已经修改了提交,因此原始未修改的提交仍然位于树中的某个位置,尽管没有分支指向它。

您可能可以使用以下方法之一找回它:

git fsck --lost-found
git reflog

然后您可以重置回此提交。重置只会让您指向该提交,并且不会更改您的文件,重置将删除所有更改(以及您正在解决的 merge 冲突):

git reset [--hard|--soft] <your_commit_hash>

关于git - 撤消 git commit amend 并保留索引中的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37723578/

相关文章:

git - 如何用 github 上的存储库覆盖我的本地存储库?

git - 删除远程分支?

不支持从 tfs 身份验证克隆 git 存储库的 eclipse 错误

git - 是否可以使用 SSH 协议(protocol)在 gitlab.com 上镜像私有(private)存储库?

git diff 不在存储库中的文件与存储库中的文件

node.js - npmpublish 命令是否提交更改?

git - 如何在 SourceTree 中使用 VS Code 作为 merge 和差异工具?

git - 使用 msysgit 进行字符编码

git - 有什么方法可以从 github 存储库中获取 "dot git"(.git) 目录?

git - 通过 https 克隆最新版本的 git 存储库