写在前面
最近逐渐熟悉了 git 的操作, 来总结几条删掉记录的 git 命令.
场景
假如你在添加到暂存区时候使用了
git add .
这时候可能会有一些辅助文件被添加到版本管理中, 并且如果这时候使用了 git commit, 文件的变动就纳入了git的版本库中, 看起来不是很舒服.
那么应该怎么办呢?
首先一条很有用的命令是
git reset --soft HEAD^
可以用来跳到最近的一次提交, 并且不会改变文件实际更改的内容(即工作区的内容), 仅是将commit节点移动到 HEAD的前面一个版本, 如果不加--soft
选项, 那么默认是 --mixed
, 这时候会丢弃暂存区, 仅保留工作区(或者说: 重置暂存区的文件与上一次提交保持一致, 文件内容保持不变).
执行之后可以看到所有的内容都进入了暂存区, 此时如果有文件需要删除, 直接使用
git rm --cached filename
即可删掉记录, 然后 rm 删除文件即可.
最后强制推送, 就可以覆盖有问题的文件的记录了
git push -f