Git 从仓库中彻底删除文件或文件夹
软件版本要求
python3 >= 3.5
git >= 2.22.0
如果git版本低,则需要安装新版本的git
安装git-filter-repo
python3 -m pip install git-filter-repo
删除指定的文件或文件夹
git filter-repo --path deploy --invert-paths
这里删除的是deploy文件夹,请根据实际情况修改
注意:命令执行后,git的远程仓库remote会被删除,请重新添加
git remote add origin https://codeup.aliyun.com/xxx/xxx/git-test.git
GC回收
- 设置过期
git reflog expire --expire=now --all - 回收
git gc --aggressive --prune=now
强制提交
git push origin master --force
这里提交的是master分支,请根据实际情况修改
后续同事拉取代码
按上述步骤从git仓库中彻底删除文件或文件夹后,
所有同事如下操作
git fetch origin
git reset --hard origin/<branch-name>
防止把删除的文件或文件夹又提交到git仓库中
说明
- 该操作步骤已经过实践验证
- 请谨慎操作