有些时候在迁移项目的时候需要将以前的commit log全部清除,并且保留之前的所有分支,经过搜索资料,可以按照如下步骤操作。
警告
20190325今天发现一个严重问题,如果每个分支的commit log全部清除,当已有分支合并分支时,是没有合并依据的,会报错。所以清除日志要三思而后行
解除项目的保护限制
进度项目后,将所有的保护限制,接触,否则在push新的分支时,会报错
切换到每个分支,清除commit log
查看所有远程分支
git branch -a
举例
比如,要清除master分支的所有commit log
- 切换到master分支
git checkout -b master
- 新建分支master-new
git checkout --orphan master-new;
- 提交所有包括被删除的文件信息,被替换的文件信息、被修改的文件以及新增的文件到暂存区
git add -A;
- commit
git commit -am "init project";
- 删除原分支
git branch -D master;
- 重命名当前分支
git branch -m master;
- 将本地重命名后的分支,push到远程仓库
git push -f origin master;
注意,在push的时候远程分支时,如果分支名和tag名有重复,会报错