1

我想我犯了一个错误。我想删除一些提交,所以我使用git rebase -i并删除了最后一个提交。但随后它删除了我在工作目录和暂存目录中所做的所有更改。怎么会这样?我知道如果我删除了一些较旧的提交,我就不会遇到这个问题。有没有办法删除最后一次提交并将更改保留在我的工作目录中?

git rebase -i顺便说一句,使用和 和有什么区别git rebase --onto <branch name>~<first commit number to remove> <branch name>~<first commit to be kept> <branch name>

4

1 回答 1

1

git rebase如果您对已知文件进行了未提交的更改,则根本不会启动。它会因此错误而失败:

Cannot rebase: Your index contains uncommitted changes.

该错误的一些变化自 2007 年以来一直存在。您是如何启动git rebase -i的?

写的,你的问题与git rebase -i's 默认值有关。没有任何参数,它将默认为签出分支,并尝试根据<remote>/<branch>配置为您签出的分支的“上游”重新设置它。您可以使用以下命令检查分支的上游存储库和分支:

git config branch.<branch_name>.remote
git config branch.<branch_name>.merge
于 2013-08-23T19:49:17.063 回答