清理git提交历史


上周开始脑子又抽风了…把用了快两年的wordpress博客迁移到了静态的jekyll编译的静态博客.并且托管在了gitcafe上面,域名保持不变

期间遇到了很多的问题,几乎完全自己写了一个blog主题,也遇到了不少问题.详细的记录可以参考之后的某篇blog…( 如果没坑掉的话 )

不过本篇博客的主题是在提交代码的历史抹杀上面做文章

由于迁移的时候遇到了不少的坑,所以在gitcafe的gitcafe-pages分支有了很多很多的提交…而今天blog的整体基本可以重新上线了,就想要把之前的大片的commit历史清除掉.在这里记录下用到的命令


# 下面的分支可以改成对应的名称
# ^1 改成现年更要保留的历史提交数,我只想留最新的一次历史
git cat-file commit gitcafe-pages^1 | sed -e '/^parent/ d' > tmpfile
git rebase --onto $(git hash-object -t commit -w tmpfile) gitcafe-pages
rm -f tmpfile
rm -rf .git/logs
git gc

很简单的记忆清除…什么RS也能这样啊…唉~

comments powered by Disqus