仓库瘦身:
https://blog.csdn.net/qq_40233736/article/details/86668768
https://stackoverflow.com/questions/2100907/how-to-remove-delete-a-large-file-from-commit-history-in-git-repository#answer-2158271
总结:
git filter-branch -f --prune-empty --index-filter "git rm -r --cached -f --ignore-unmatch 文件/文件夹" --tag-name-filter cat -- --all
git update-ref -d refs/original/refs/heads/master
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=all
操作此命令时,千万不要打开桌面版Github!后台会有冲突,可能一边命令行削减仓库,一边 Github Windows 又默默下载回来了。
前四条命令。第四条不行再运行第五条。
第一条命令最耗时,可以分开运行。
关于:git rm 文件/文件夹
——路径通配符:
- 可以是
文件夹/*
- 可以是
*.jpg
- 路径带空格如何?
空格前加\
https://stackoverflow.com/questions/11855517/git-rm-file-name-with-space - 是否可以一次匹配多个Pattern?
可以,用空格分开即可。
也可以先看看所有历史文件
git rev-list --objects --all
# 撤销Add:
Add未Commit时后悔了, 取消添加到仓库缓存中的文件:
git rm FILE --cached
git rm DIR --cached -r
强推
git push -u origin +master
撤销上一次Commit,将上一次提交的修改“解压”回来:
git reset --soft "HEAD^"
建议使用桌面版Github操作,每次Commit之后,底部都会有个小的“undo”按钮。
网友评论