删除文件需要注意一点,就是你当前的项目,没有任何文件在待提交上,或者暂存区,有的话如果不重要你可以取消掉,或者先提交一次。让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
分类: Git 笔记 标签: git永久删除删除同步

评论

暂无评论数据

暂无评论数据

目录