清理 git 仓库子目录(qbit)

前言

清理过程

  • 安装 git filter-repo

    pipx install git-filter-repo
  • 命令行进入本地 git 仓库目录
  • 查看当前仓库的远程 URL

    git remote -v
  • 移除 lib20241231 目录

    # --invert-paths 相当于 delete 参数
    # 默认无 invert-paths 是保留路径
    # 加 invert-paths 反转为删除路径
    git filter-repo --path lib20241231 --invert-paths
  • 注意:git-filter-repo 会移除掉 git 配置文件中的 origin,防止误删除远程仓库
    清理 git 仓库子目录(qbit)_第1张图片
  • 还原远程仓库地址

    git remote add origin 
  • 推送

    git push --all --force && git push --tags --force
    # OR
    git push origin --force --all
    git push origin --force --tags

检查清理是否生效

  • 使用 git log 查看提交历史

    # 如果没有任何输出,说明该路径下的文件或目录已不再存在于任何提交中。
    # 如果有输出,则表示还有提交包含该路径。
    # 双短横 -- 是用来分隔命令选项和路径参数的
    git log -- lib20241231
  • 使用 git filter-repo --analyze 命令分析

    这会在 .git/filter-repo/analysis 目录下生成一些分析文件
    所有目录,包括普通删除的目录,会出现在 directories-all-sizes.txt 文件里面
    所有普通删除的目录,会出现在 directories-deleted-sizes.txt 文件里面
    通过 git filter-repo 删除的目录,不会出现在上面两个文件里面

后记

  • 在 git 服务端查找仓库目录时,注意所有字母要小写,比如仓库名为 AbcDef,仓库目录名会是 abcdef.git
本文出自 qbit snap

你可能感兴趣的:(gitgit-log)