Git 清理无用Commit 和 Tags
warning:
这篇文章距离上次修改已过1460天,其中的内容可能已经有所变动。
因为自己手残导致Git库内添加一些奇怪的东西,还很占地方,于是就有了这篇文章。
Error:请谨慎对待每一次
Commit
!Git清理全部Commit
缺点就是你提交记录和文件历史全没了,但是简单高效粗暴~
#切换分支
git checkout --orphan latest_branch
#添加所有文件
git add -A
#提交分支
git commit -m "提交说明"
#删除主分支
git branch -D master
#重名当前分支为master(主分支)
git branch -m master
#提交到远程仓库(强制覆盖)
git push -f origin master
Git删除指定文件及其历史记录
Error:注意:文件路径千万不要以
/
开头!否则就不是相对路径了!上条警告是来自于被舍友
rm -rf /*
的某人的悲鸣~#删除指定文件及其历史记录
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <你要删除的文件路径(相对于项目根目录)>' --prune-empty --tag-name-filter cat -- --all
#强制提交repo到远程仓库
git push origin master --force --all
#强制提交Tags到远程仓
git push origin master --force --tags
#回收空间
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
删除无用的Tags
#本地
git tag | grep "<你要删除的tag包含的关键字>" |xargs git tag -d
#远程
git show-ref --tag | grep "<你要删除的tag包含的关键字>"| awk '{print $2}'|xargs git push origin --delete