Git Rebase 似乎已经工作,但所有提交仍在日志中显示......我处于什么状态?

标签 git rebase

我想我使用 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/

相关文章:

c# - 将代码从 SVN 导入 GIT 失败 - SVN trunk 为空

Git : Failed at pushing to remote server, ' REPOSITORY_PATH ' 不是git命令

git - 使用 git rebase 编辑 merge 提交

git - 我怎样才能知道有多少 master 中的提交不在我的分支中?

git 重命名许多文件和文件夹

git - 压缩提交是否也会从其他分支中删除单个提交

c - 每次提交文件时,都会出现以下错误

Git:交互式地对一系列提交进行 rebase

Git Merge vs Rebase - 解决冲突

即使所有 merge 冲突都已解决,Git rebase --continue 也会提示