问题描述
说起来这个功能平时基本用不上,谁会没事把自己的历史记录清空掉?但是像这种情况:
这里之所以这么多提交,是因为复刻了别人的仓库且作为镜像,很多提交记录也随之迁移到gitlab上面。
且:
这个功能就可以有一定的作用了。
操作流程
1.检出工程
$ git clone git@172.18.20.41:cloud-platform/myproject.git
Cloning into 'myproject'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 4 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4/4), done.
2.切换新的假分支
$ git checkout --orphan new_branch
Switched to a new branch 'new_branch'
之所以叫假分支,是因为这个分支没有提交,不算一个真正的分支:
$ git branch
master
但是这个分支里除了提交记录外,所有内容都存在。
3.添加所有文件
$ git add -A
4.提交更改
$ git commit -a -m "clear"
[new_branch (root-commit) 3767997] clear
1 file changed, 90 insertions(+)
create mode 100644 .idea/workspace.xml
5.删除master
$ git branch -D master
Deleted branch master (was c5d5624).
6.重命名当前分支
$ git branch -m master
7.强制推送
$ git push -f origin master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 1.40 KiB | 1.40 MiB/s, done.
Total 4 (delta 0), reused 3 (delta 0)
To 172.18.20.41:cloud-platform/myproject.git
+ c5d5624...3767997 master -> master (forced update)