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

时间:2015-01-22 14:28:11

标签: git git-commit amend

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

我应该怎样做以便以原始形式进行上一次提交并将我更改的文件放回暂存区域,以便我可以单独提交它们?

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

2 个答案:

答案 0 :(得分:3)

您可以使用

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

使用此哈希,您可以使用

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

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

答案 1 :(得分:1)

根据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>

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