我想我使用 rebase 压缩了最后 40 次提交。 我遵循本指南以确保我没有做任何愚蠢的事情 - http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
问题是,我觉得我做了一些蠢事。
无法保存(交互式)文本文件,因此 rebase 似乎失败了,但它给出的消息和下面的一些其他内容表明它可能有效。
不确定我在哪里或做什么(甚至我的名字是什么)。 这是我所做的:
- 我输入了 git rebase -i HEAD~40
- 出现了一个文本文件,我对其进行了编辑,将所有行更改为以“squash”开头,除了最上面的行
- 我在 Windows 上,使用 EditPad...无法保存文件!哦,不……(只读/权限?)。
- 我将它保存到一个随机目录。
命令行显示某种成功(不幸的是我丢失了消息)。我不知道它怎么会成功,也不知道我保存的文件在哪里...
git rebase --continue 说“没有正在进行的 rebase?
git reflog 表明它有效(至少据我所知,“rebase”一词显示在最后 40 次奇数提交中)例如:
9992445 HEAD@{8}: rebase :报告工作
- 但是运行
git log
会显示所有 40 个提交,我只是“重新定位”
这看起来不太好。有谁知道我在什么状态? 我是不是陷入了困境,这是一个僵尸 rebase 吗?
最佳答案
如果无法保存 rebase “待办事项列表”,则说明你的 rebase 不起作用。
压缩许多提交的最简单方法是执行 git reset --soft HEAD~40
然后 git commit
用你的新消息 - 假设你想压扁所有这些。
关于Git Rebase 似乎已经工作,但所有提交仍在日志中显示......我处于什么状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6869705/