因为自己手残导致Git库内添加一些奇怪的东西,还很占地方,于是就有了这篇文章。

Error:请谨慎对待每一次Commit!

Git清理全部Commit

缺点就是你提交记录和文件历史全没了,但是简单高效粗暴~

 1#切换分支
 2git checkout --orphan latest_branch
 3
 4#添加所有文件
 5git add -A
 6
 7#提交分支
 8git commit -m "提交说明"
 9
10#删除主分支
11git branch -D master
12
13#重名当前分支为master(主分支)
14git branch -m master
15
16#提交到远程仓库(强制覆盖)
17git push -f origin master

Git删除指定文件及其历史记录

Error:注意:文件路径千万不要以/开头!否则就不是相对路径了!

上条警告是来自于被舍友`rm -rf /*`的某人的悲鸣~
 1#删除指定文件及其历史记录
 2git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <你要删除的文件路径(相对于项目根目录)>' --prune-empty --tag-name-filter cat -- --all
 3
 4#强制提交repo到远程仓库
 5git push origin master --force --all
 6
 7#强制提交Tags到远程仓
 8git push origin master --force --tags
 9
10#回收空间
11rm -rf .git/refs/original/
12git reflog expire --expire=now --all
13git gc --prune=now
14git gc --aggressive --prune=now

删除无用的Tags

1#本地
2git tag | grep "<你要删除的tag包含的关键字>" |xargs git tag -d
3
4#远程
5git show-ref --tag | grep "<你要删除的tag包含的关键字>"| awk '{print $2}'|xargs git push origin --delete