我想我犯了一个错误。我想删除一些提交,所以我使用了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>
之间的区别是什么?
答案 0 :(得分:1)
git rebase
将无法启动。这个错误会失败:
Cannot rebase: Your index contains uncommitted changes.
该错误的一些变体自2007年以来一直存在。你是如何推出git rebase -i
的?
写完后,您的问题与git rebase -i
的默认值有关。如果没有任何参数,它将默认为签出分支,并尝试将其重新绑定到配置为您已签出的分支的“上游”的<remote>/<branch>
。您可以检查分支的上游存储库并分支:
git config branch.<branch_name>.remote
git config branch.<branch_name>.merge