木灵鱼儿

木灵鱼儿

阅读:1947

最后更新:2021/07/03/ 23:00:33

git永久删除文件或文件夹并删除历史记录同步到远程仓库

删除文件需要注意一点,就是你当前的项目,没有任何文件在待提交上,或者暂存区,有的话如果不重要你可以取消掉,或者先提交一次。让git这两个区域空下来。

如果没有清空使用删除,会提示如下代码:

Cannot rewrite branches: You have unstaged changes.

永久删除文件

清空暂存和提交区,然后输入以下命令:

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch password.txt' --prune-empty --tag-name-filter cat -- --all

password.txt这个就是你要删除的文件名。

这个也是有路径的,默认就是项目的根目录(相对于git仓库的跟目录),所以这里的password.txtpackage.json这些文件是同级的,如果你要删除更下层的,比如src下的password.text

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch src/password.txt' --prune-empty --tag-name-filter cat -- --all

注意路径不能以/开头,否则文件或文件夹会被认为是从 git 的安装目录开始。

删除文件夹

git rm --cached 命令后面添加 -r 命令,表示递归的删除(子)文件夹和文件夹下的文件,类似于 rm -rf 命令。

git filter-branch --force --index-filter 'git rm --cached  -r --ignore-unmatch src' --prune-empty --tag-name-filter cat -- --all

同步远程仓库

git push --all --force

版权申明

本文系作者 @木灵鱼儿 原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

关于作者

站点职位 博主
获得点赞 0
文章被阅读 1947

相关文章