如何清洗 Github 提交历史 ?


当 Github 的 Repo 变得日益臃肿、或者上传了敏感内容时,常见的方法时清理相关文件的所有历史提交记录:

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ${FILEPATH}' --prune-empty --tag-name-filter cat -- --all
git push origin master --force
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now

但若这类文件非常多的时候,一个可选的方法时直接清空所有历史记录:

rm -rf .git
git init
git add -A
git commit -m "clear history"
git remote add origin ${GITHUB_REPO_URL}
git push -f -u origin master

文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
修改 Git 仓库的连接协议 修改 Git 仓库的连接协议
前言默认情况下,git 是使用的 http 协议与远端通讯的。 当我们在国内使用 Github 时,因为 GFW 的原因,会非常慢甚至连接不上。 此时我们可以把 git 的协议修改为 ssh。 方法首先进入 git 仓库的根目录,使用 gi
下一篇 
使用 seafile 搭建私人云盘 使用 seafile 搭建私人云盘
概要你是否面临以下困扰: 免费云盘越来越少了 百度云盘限速越来越过分了 上传到云盘的文件被服务商泄露了、删掉了 不得已用 U 盘、QQ 给小伙伴共享文件 …… 其实只需要使用 seafile 搭建一个私人云盘,这些问题就迎刃而解了:Se
2021-01-21
  目录