我从git commit中获得commit-id1
,但这是第一次提交,因此它没有父级。有一个commit-id2
是它的直系孩子。
这是方案commit-id1 ----> commit-id2 ----> commit-id3 ...
是否有一种安全的方法可以删除commit-id1
并使commit-id2
成为第一次提交
即,commit-id2 ----> commit-id3 ...
我读到了git rebase -onto
,但它需要父母,而且无法弄明白
编辑:提交被推送到服务器,我也想从服务器中删除它
答案 0 :(得分:1)
你应该做
$ git rebase -i --root
这会启动一个交互式rebase。您的文本编辑器将打开一个包含所有要重新提交的提交的列表以及说明。编辑该文件,以便跳过第一次提交。现在保存文件并关闭文本编辑器。
这将从您的本地历史记录中删除提交。如果您需要更新遥控器,则必须强制推送,就像使用任何本地历史记录修订版一样:
$ git push origin master
将origin
替换为适当的远程名称,并使用相应的分支名称替换master
。