从最新提交中删除文件
注意!如果你只想从之前的提交中删除一个文件,并保留它在磁盘上,可以阅读juzzlin的答案。
如果这是你的最后一次提交,而你想要完全从本地和远程仓库中删除文件,可以:
- 使用命令删除文件:
git rm
- 使用修正标记(amend flag)提交:
git commit --amend
修正标记告诉 git 再次提交,但是将此提交与上一个提交“合并”(不是指合并两个分支)。
正如评论中所述,这里使用git rm
就像使用rm
命令本身一样!
我认为这里的其他答案都是错误的,因为这是一个将误提交的文件移回到之前提交的暂存区的问题,而不是取消对它们所做的更改。 可以像 Paritosh Singh 建议的那样完成:
git reset --soft HEAD^
或者
git reset --soft HEAD~1
然后重置不想提交的文件以将其排除在提交之外(旧的方法):
git reset HEAD path/to/unwanted_file
注意,自 Git 版本 2.23.0 开始,可以采用新方法:
git restore --staged path/to/unwanted_file
现在重新提交,甚至可以重用同一提交信息:
git commit -c ORIG_HEAD