git 也修改暂存区中添加的文件

git amend added files in the staging area too

我更改了很多文件并将它们添加到 Git 暂存区。然后,在提交它们之前,我意识到我必须更改上一次提交的提交消息。所以,我做了 git commit --amend 并更改了提交消息,而没有通过更改日志。好吧,这也将暂存区中的文件添加到之前的提交中。

我应该怎么做才能以原来的形式进行之前的提交,并将更改的文件返回到暂存区,以便我可以单独提交它们?

为了它的价值,我意识到我应该先提交我的更改,然后使用 git rebase -i 更改提交消息历史记录。

您可以使用

找到您之前提交的先前状态的 SHA1
git reflog

使用此哈希,您可以使用

将当前分支恢复到之前的状态
git reset --soft <SHA1>

在此之后,您可以存储更改,然后git commit --amend更改提交消息。

根据 reflog 中提交 ID 的值,执行以下操作。

git reflog -5 #I assume this will be good enough; increase the value as needed
git reset --hard <commit-with-bad-message>
git commit --amend -m '<New message>'
git read-tree --reset -u <commit-that-had-extra-files>

您现在应该在您之前想去的地方。继续你的工作。