git 删除提交记录

最近做项目接了一个活,将项目开源,提升代码开源率.具体要怎么做呢?

  • 抽取收敛配置参数
  • 将配置置于单独的代码库或是共同的存储位置(和本身开源代码剥离)
  • 清除开源代码库的提交记录
  • 清除开源代码库的所有tag

前两步不是我们这里介绍的重点,这里介绍一下,如何清除一条代码分支的所有git 记录

//基于当前分支新建一条提交记录为空的代码分支
git checkout --orphan [new_branch_name]

//添加所有文件
git add -A

git commit -am 'submit message'

git branch -D master //(删除当前的分支)

git branch -m master //将当前分支重命名成master

git push -f origin master //将新的master分支推送到远端代码仓库

用上述的方法可以将master分支的所有提交记录清空

如何删除git tag呢,这里分为两种,一种是删除本地的tag,一种是删除远程的tag

//删除本地tag
git tag -d [要删除的tag_name]

//删除远程tag
git push origin :refs/tags/[要删除的tag_name]

//查看本地tag
git tag

//查看远程tag
直接通过git 的页面可以查看

如何删除远程代码分支

git push origin --delete [要删除的分支名]

如何删除本地分支

git branch -D [分支名]

如何查看所有分支

git branch -a

如何查看本地分支

git branch -vv

删单个文件的提交记录

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch xxxx/file.ext' --prune-empty --tag-name-filter cat -- --all

git push origin master --force

然后再重新提交文件