我如何git rebase第一个提交?


128

我曾经git init创建一个新的仓库,然后进行了三次提交。现在,我想重新定位以回去修改我的第一次提交,但是如果我这样做,git rebase -i HEAD~3它会抱怨!如果我尝试使用相同的方法,HEAD~2那还是可以的,但是只能让我重新排列最后两个提交。

如何引用“有任何提交之前的提交”或返回并插入一个空提交?


Answers:


216

最简单的方法,使用最近足够的git(已经存在了很长时间了,因此您应该拥有它):

git rebase -i --root

正如twalberg在评论中指出的那样,另一种简单的方法是用于git checkout --orphan设置进行新的根提交,您可以在其上复制旧的提交。(这rebase -i --root最终还是在内部进行的操作。)


使用git rebase -i --rooterror: cannot 'fixup' without a previous commit尝试
压缩

您到底在说明书中编辑了什么?您应该有一个提交列表,最旧的位于顶部,并pick为每个列表提供命令。将第二个 更改picksquashfixup,写出说明表,退出编辑器,然后Git会完成工作。
torek
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.