关于版本控制:从上一个git commit中删除文件

Remove files from last git commit

这与从git commit中删除文件不同,因为这里的所有答案都不适用于本例。所以问题是,

git commit之前,我们使用git add。问题是,当我们执行git add时,有时我们忘记了检查,只有在执行git commit时,我们才意识到,这些文件不应该由git add提取并提交。

这就是为什么所有的答案都不起作用的原因,因为git reset HEAD^或类似的答案对新提取的文件不起作用,并且事先没有git历史。我很难学会。

那么,这个案子有什么解决办法吗?谢谢。


一种方法是在您承诺之后这样做:

1
2
git rm --cached <files-you-didn't-want>
git commit --amend

请注意,如果您已经推送了错误提交,那么您需要执行强制的非快速向前推送,以便从远程删除错误提交。


git commit --amend当你提交得太早,可能忘记添加一些文件,或者你把提交搞砸了。


使用"git rm--cached name_of_file"命令。这将忽略这些文件,即使它们以前是用"git add"添加的。


那么git reset 呢?或者只使用git reset从上一个git add的索引中删除所有文件。