错误:您对以下文件的本地更改将被覆盖:[列出在活动分支中更改的文件列表]。请在切换分支之前提交更改或隐藏它们。放弃
但是,我尝试的所有其他操作——提交、状态、合并——都告诉我没有要提交的内容(工作目录干净)。我需要做什么才能到达我的master分支?
编辑:当我尝试git stash时,我得到:
错误:将未修改的[file path]提供给diffcore
适用于上述错误中列出的所有文件。
错误:您对以下文件的本地更改将被覆盖:[列出在活动分支中更改的文件列表]。请在切换分支之前提交更改或隐藏它们。放弃
但是,我尝试的所有其他操作——提交、状态、合并——都告诉我没有要提交的内容(工作目录干净)。我需要做什么才能到达我的master分支?
编辑:当我尝试git stash时,我得到:
错误:将未修改的[file path]提供给diffcore
适用于上述错误中列出的所有文件。
今天我遇到了类似的问题。 git status
没有列出检出报告中提到的文件。 我执行了以下操作:
git checkout -- path/to/file
这会撤销对文件所做的任何更改。
一种更简单的方法来撤销当前工作目录下所有未暂存的更改[1]:
git checkout -- .
[1] - 请注意,您将失去其他未暂存的更改(如果有)。 如果您不知道自己在做什么,请备份您正在处理的文件 :)
git checkout -f branch
不起作用,但这个方法解决了问题。 - rurp*.sh text eol=lf
但是git checkout -- .
没有用新的不带CR的版本替换它们。 - Daniel Alder就是这么简单:
git stash
git stash pop
当您运行git stash
时看到的“错误”并不是什么需要担心的事情。这只是Git认识到该文件没有任何未提交的更改。
我在进行克隆时遇到了类似的问题。我只需使用--force (-f) 标记来强制检出即可。
git checkout --force some_branch
也许不是解决你正在修改的仓库问题的最佳方式,但我确信自己没有进行任何更改,只想切换分支。
将有问题的文件移动到其他位置。然后从您的树中删除该有问题的文件。再次pull。然后将您的有问题的文件的更改与您刚刚pull的文件进行比较。这是一种hack方法,但它有效。
git stash
将文件保存在存储区中,并在将来的某个时候恢复它们 (git stash pop
)。 - Grizzly与@JohnHammink的答案非常相似,但是这里是解决方案。
解决方案
在我的情况下,这是因为一个文件仅更改大小写而重命名。例如fooViewModel改为FooViewModel。Git一直认为同一个文件实际上是两个不同的文件。
我认为这与Unix区分大小写有关,而Windows则没有真正区分大小写。
希望这可以帮助到您。
我之前也遇到了同样的问题,并且在Linux上解决了它:
git config --global core.autocrlf input
正如消息所示,使用 --force 选项重新运行命令。
flutter upgrade --force
git status
的输出是什么? - manojlds#在分支Berislav上 没有要提交的内容(工作目录干净)
- Berislav Lopac