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>
您现在应该在您之前想去的地方。继续你的工作。
我更改了很多文件并将它们添加到 Git 暂存区。然后,在提交它们之前,我意识到我必须更改上一次提交的提交消息。所以,我做了 git commit --amend
并更改了提交消息,而没有通过更改日志。好吧,这也将暂存区中的文件添加到之前的提交中。
我应该怎么做才能以原来的形式进行之前的提交,并将更改的文件返回到暂存区,以便我可以单独提交它们?
为了它的价值,我意识到我应该先提交我的更改,然后使用 git rebase -i
更改提交消息历史记录。
您可以使用
找到您之前提交的先前状态的 SHA1git 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>
您现在应该在您之前想去的地方。继续你的工作。