git只保留最新代码,删除历史记录

git cat-file commit master^X | sed -e '/^parent/ d' > tmpfile
git rebase --onto $(git hash-object -t commit -w tmpfile) master
rm -f tmpfile


其中X是要保留的记录条数
这个时候,你的log里已经没有历史的提交了,但是历史的数据还存在于本地,|
要想完全删除的话,执行以下代码
rm -rf .git/logs
git gc 

注意,这里只对master进行了操作,如果你还有其它branch或tag,都需要类似于这样地处理一遍.

标签:Git

添加新评论