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

52 0

删除文件需要注意一点,就是你当前的项目,没有任何文件在待提交上,或者暂存区,有的话如果不重要你可以取消掉,或者先提交一次。让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
  • 本文分类:Git
  • 本文标签:git永久删除删除同步
  • 流行热度:已超过 52 人围观了本文
  • 最后更新:2020年10月14日 - 10时11分15秒
  • 发布日期:2020年10月14日 - 10时11分15秒
  • 版权申明:本文系作者@木灵鱼儿原创发布在木灵鱼儿站点。未经许可,禁止转载。
微信收款码
微信收款码