小墨の博客

梦想需要付诸行动,否则只能是梦

Git 删除某个文件/文件夹的所有历史记录


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

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:545
    • 页面总数:20
    • 分类总数:96
    • 标签总数:213
    • 评论总数:63
    • 浏览总数:285197

    | | |
    | |  Z-Blog PHP