1. cd到当前的仓库路径
2. (1)如果是要删掉指定文件
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 【文件路径】' --prune-empty --tag-name-filter cat -- --all
要删掉记录的文件的路径:src/main/resources/config/application-test.yml
则代码为: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
(2)如果是要删掉指定文件夹
git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch 【文件夹路径】' --prune-empty --tag-name-filter cat -- --all
要删掉记录的文件的路径:src/main/resources/config/
则代码为:git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch src/main/resources/config/' --prune-empty --tag-name-filter cat -- --all
(删除文件夹代码中多一个-r)
记得把路径替换成自己的
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
5. 注意:为了避免以后该文件(夹)被再次提交,可以将其添加到.gitignore中
参考:https://blog.csdn.net/q258523454/article/details/83899911
本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work
尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。