我更改了很多文件并将它们添加到 Git 暂存区。然后,在提交它们之前,我意识到我必须更改之前提交的提交信息。所以,我做了一个git commit --amend
并更改了提交消息,而不通过更改日志。好吧,这也将暂存区域中的文件添加到了先前的提交中。
我应该怎么做才能使先前的提交以其原始形式并将我更改的文件放回暂存区域,以便我可以单独提交它们?
对于它的价值,我意识到我应该先提交我的更改,然后使用git rebase -i
.
我更改了很多文件并将它们添加到 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>
你现在应该在你以前想去的地方。继续你的工作。