GitHub删除某个文件以及该文件所有历史记录

217 阅读1分钟

1、cd 到该项目本地路径

2、将src/main/resources/config/application-test.yml换为要删除的文件相对路径,不同操作系统单引号和双引号不同,filter-branch 遍历提交日志用指定的脚本进行一些处理

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch src/main/resources/config/application-test.yml" --prune-empty --tag-name-filter cat -- --all

此时若报错:Cannot rewrite branches

解决方法:先执行git add src/main/resources/config/application-test.yml 加到git版本控制中,然后再git stash就可以了

3、本地记录覆盖到Github,(所有branch以及所有tags)

git push origin --force --all
git push origin --force --tags

4、强制解除对本地存储库中的所有对象的引用和垃圾收集

git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now

原文:

blog.csdn.net/q258523454/…