Git强制删除提交到远程版本库的数据或版本记录
条评论Git新手,测试的时候提交了一堆记录,有洁癖看了总是不爽,而且换了个git托管商提交记录居然还在,只能找资料按教程一步步删除了。
比如提交了:
test3
test2
test1
删除提交记录及更改
1 | git reset --hard HEAD^ #删除最后1次的提交记录 |
删提交记录但保留更改
需要用到下面的命令:
1 | git rebase -i <upstream> #<upstream>为需要删除的提交的前一个提交 |
上面命令执行完会自动打开Interactive Rebase,将pick test2
那行改成squash
, 保存退出. 之后可能 git 会提示出现conflict,根据提示完成处理。
squash的意义解释: meld into previous commit, 也就是"熔入前一个提交中", 所以是先 pick a, 使用 a 提交, 然后 squash b, 把 b 熔入前一个提交中.
在 rebase 保存退出后, 随后的提示信息是由 squash 命令触发的, 此时你可以对熔合后的 commit message 进行编辑, 而不需要在结束后 git commit --amend.作者:黄鋆
链接:https://www.zhihu.com/question/22132675/answer/20420691
接着就是把本地内容 Force Push 到远端完成
1 | git push -f |
再看提交记录,果然是清爽多了.
本文标题:Git强制删除提交到远程版本库的数据或版本记录
文章作者:凹凸曼
发布时间:2016-12-28
最后更新:2017-01-28
原始链接:https://sobaigu.com/use-git.html
版权声明:转载请务必保留本文链接和注明内容来源,并自负版权等法律责任。