如何删掉git版本库master分支的第一个commit

这个操作会将库清空,一般来说在建库开始的时候操作。
适用场景:
git init初始化版本库之后,提交第一个点之后发现这个点出问题了,但是此时内心如果有洁癖的话,
你会觉得不完美,很想把这个点干掉重来。

如上图,此时你这个点已经推到远程master上面了, 因为是第一个点,所以通过普通的删除分支的命令无法达到删除的目的。但是可以“曲线救国”,通过以下方法可以实现:
(这个操作会清空版本库, 所以请慎重操作!!!)
1,首先需要确保你拥有master权限
2,要有一个空的版本库,或者第一个点为不包含代码文件的版本库。如下所示:
这个版本库的第一个点我只新建了一个隐藏文件 .gitkeep文件。
3,在待重建的版本库上通过以下的命令添加上图②对应的版本库:
git remote add origin1 git@scm-gitlab:test/test/test.git
(因为①中远程版本库名字是origin,所以这里需要add另外一个库名字)
git fetch origin1 获取同步最新状态
如果master分支是被保护的,需要设置成不保护。
git reset --hard origin1/master 跳转到新add进来的库的master分支
git push orgin master -f 强制将origin1的点推送到origin的master分支上,
这样origin的master就发生了改变
然后把添加进来的库删掉
git remote rm origin1
这样一来就把原来的点删掉了,相当与重建了版本库
 
你们可以发现origin1的第一个是什么文件都没有的,其实我只新建了一个隐藏文件.gitkeep,这样就可以基于这个初始点进行开发,后续如果想删掉重建就没那么麻烦了,直接跳到git init的那个点,然后强推就行了。这个操作有风险,请想好再做,避免带来不必要的损失。
另外,这也告诉我们,在新建版本库的时候,第一个点尽量不要添加任何代码相关的文件,可以添加.gitkeep文件作为初始点,这样操作相对规范点

 
posted on 2019-12-12 11:52  车小车  阅读(1368)  评论(0编辑  收藏  举报