美文网首页IT技术篇程序员Git
Git 仓库清洗(清除历史记录)

Git 仓库清洗(清除历史记录)

作者: 左蓝 | 来源:发表于2017-02-28 23:31 被阅读2891次

人有手贱时,有时候不小心把密码 push 上去了,留在历史记录中实在是很蛋疼,所以想个办法清除 Git 历史记录。此外有时候提交了一个较大的没啥用的文件,无疑在 commit 历史中是一个沉重的负担,必须清理。

清除指定文件

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch path-of-remove-file' --prune-empty --tag-name-filter cat -- --all

path-of-remove-file是你要删除的文件的相对目录 (相对于 git repo 的根目录), 可以使用通配符*匹配文件进行批量删除。如果执行上述命令后出现的提示信息中有unchanged字样, 说明 repo 中没有找到path-of-remove-file, 请仔细检查路径和文件名是否正确。

更完整模式:

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch path-of-remove-file' --prune-empty --tag-name-filter cat -- --all
git filter-branch --index-filter 'git rm --cached --ignore-unmatch path-of-remove-file' HEAD
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d

这个对特定文件才有效果。

自动清除历史记录

Git 垃圾回收:

git gc --auto

查看大小:

du -hs .git/objects
1.4M .git/objects

强制提交

git reflog expire --expire=now --all
git gc --prune=now
git push --all --force
git push --all --tags --force

最后我想说——对于小仓库并没有什么明显效果,只能清除一些敏感的信息,减少体积还是很困难呐。

相关文章

  • Git 仓库清洗(清除历史记录)

    人有手贱时,有时候不小心把密码 push 上去了,留在历史记录中实在是很蛋疼,所以想个办法清除 Git 历史记录。...

  • git有用指令

    找回丢失的commint 撤销commit,但未git push的命令 查看仓库历史记录 git log不过,这里...

  • Git和Github相关操作

    设置git用户 git初始化 添加到仓库 查看仓库状态 查看文件更改 查看历史记录 查看回退历史 回退版本 生成s...

  • 迁移GIT仓库并带有历史提交记录

    迁移git仓库 开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不...

  • 将一份代码提交到多个git仓库

    开发中,可能遇到需要把一个仓库的代码,git历史记录全部copy到另一个仓库,为了同时在两个git仓库中备份代码。...

  • Git迁移仓库并带有历史提交记录

    迁移git仓库 很多时候,我们会遇到一个问题。Git仓库的迁移,需要保留已有的历史记录我们可以这样做:使用 --m...

  • git更换远程仓库地址-保持历史记录

    git更换远程仓库地址-保持历史记录的操作步骤 codding上申请新的仓库,并初始化 本地更换远程仓库地址 拉取...

  • Git_仓库-清空历史记录

    git仓库-历史记录的产生 可以记录每个成员每次commit的内容,这就导致仓库会越来越大。每当有新成员加入时就会...

  • IDEA清除缓存慎用

    由于清除缓存会把所有的历史记录也给清除,

  • Git 清除所有历史记录

    1. 进入仓库,拉一个分支比如名为 latest_branch --orphan 创建一个无任何历史记录的孤儿分支...

网友评论

    本文标题:Git 仓库清洗(清除历史记录)

    本文链接:https://www.haomeiwen.com/subject/qcexgttx.html