尝试使用git rebase -i添加对先前提交的更改失败

时间:2016-11-30 16:07:43

标签: git

我试图修改以前提交的更改,如下所述: How to modify a specified commit in git?

因此,我对更改进行了更改以便进行调整。国家,我想修改'他们以前的提交,所以我去

git rebase -i HEAD~3

但收到以下错误:

Cannot rebase: Your index contains uncommitted changes.
Please commit or stash them.

我无法理解Git在抱怨什么,因为这是应该发生变化的状态,对吗?

我做错了什么?

我使用v1.9.3

1 个答案:

答案 0 :(得分:2)

好吧,它说

  

无法重新绑定:您的索引包含未提交的更改。   请提交或存储它们。

首先提交您的更改:

git add .
git commit -m 'ready to rebase'

然后再试一次

git rebase -i HEAD~4

然后在使用rebase时,您可以使用ready to rebase提交进入上一个提交。

假设你有四个提交类似

pick 3396a30 commit one
pick 3396a31 commit two
pick 3396a32 commit three
pick 3396a33 ready to rebase

然后将其更改为

pick 3396a30 commit one
pick 3396a31 commit two
f 3396a32 ready to rebase      # this line changed from "pick" to "f"
pick 3396a33 commit three

将导致

commit one
commit two       # this will include "ready to rebase"
commit three

选项f的含义是

  

f,fixup = like“squash”,但丢弃此提交的日志消息

     

s,squash = use commit,但融入之前的提交