`git rebase -i` 错误:以下未跟踪的工作树文件将被结帐覆盖:
Posted
技术标签:
【中文标题】`git rebase -i` 错误:以下未跟踪的工作树文件将被结帐覆盖:【英文标题】:`git rebase -i` error: The following untracked working tree files would be overwritten by checkout: 【发布时间】:2021-12-02 21:05:39 【问题描述】:运行git rebase -i
时出现错误:
$ git rebase -i 01a182d66b14ef8f32eb09614fe2c7144044a537^
error: The following untracked working tree files would be overwritten by checkout:
Annotation/README.MD
Please move or remove them before you switch branches.
Aborting
error: could not detach HEAD
我看不出问题出在哪里,因为当我运行 git status
时,它告诉我没有未分级的更改:
git status
On branch dataset
nothing to commit, working tree clean
运行git stash
也无济于事:
$ git stash
No local changes to save
【问题讨论】:
【参考方案1】:最后的错误消息(关于无法分离HEAD
)应该在这里忽略;这是早期错误的产物。
虽然前面的错误非常简单:
error: The following untracked working tree files would be overwritten by checkout: Annotation/README.MD
这意味着现在,您有一个名为Annotation/README.md
的未跟踪工作树文件。 (如果您不确定“未跟踪文件”和/或“工作树”是什么意思,请阅读my answer here。由于git status
没有抱怨它,它似乎既未被跟踪又被忽略。)
同时,git rebase
首先要检查的提交,以便复制其他一些提交,其中有一个名为Annotation/README.MD
的文件。要签出该提交,Git 必须签出该文件。签出该文件将破坏当前位于工作树中的名为 Annotation/README.MD
的文件。
为避免丢失工作树文件 Annotation/README.MD
的内容,Git 不会立即签出该提交。如果您通过添加和提交文件来保存文件,或者完全删除文件或将其移开,这将解决问题:
Please move or remove [this file] before you [check out the target commit]
由于git rebase
需要在开始提交复制过程之前检查目标提交,所以git rebase
需要您执行git checkout
需要您执行的操作。
【讨论】:
以上是关于`git rebase -i` 错误:以下未跟踪的工作树文件将被结帐覆盖:的主要内容,如果未能解决你的问题,请参考以下文章
git rebase abort 后的 git reset --hard 错误:警告:ref HEAD 的日志在 DD/MM/YYY TTTT 上意外结束