Git要求我提交或存储结算主变更,即使所有更改都已提交?
我在当地有两个分支, master
和Berislav
。 后者目前活跃,我已经承诺所有的变化。 当我尝试结帐以master
,我收到以下消息:
错误:对以下文件的本地更改将被checkout覆盖:[在活动分支中更改的文件列表]请在您切换分支之前提交更改或存储它们。 中止
然而,我试过的其他东西 – commit
, status
, merge
– 告诉我没有什么要提交的(工作目录干净)。 我需要做什么才能到达我的master
分支?
编辑:当我尝试git stash
,我得到:
错误:将未修改的[文件path]提供给diffcore
对于上面错误中列出的所有文件。
我今天遇到类似的问题。 git status
并没有列出签出正在抱怨的文件。 我做了一个:
git checkout -- path/to/file
然后解除文件的任何更改。
一个更简单的方法来撤消当前工作目录下所有未分离的更改[1] :
git checkout -- .
[1] – 被警告 – 你将失去你正在工作的任何未分类的变化(如果有的话)。 如果你不知道你在做什么,那么保留你正在工作的文件的备份:)
像这样简单:
git stash git stash pop
运行git stash
时看到的“错误”并不是什么值得关注的东西。 这只是认识到该文件没有任何未提交的变化。
我有一个新鲜的克隆类似的问题。 我只是用–force(-f)标志强制结帐
git checkout --force some_branch
可能不是解决你正在修改的回购问题的最佳方式,但在我的情况下,我确定我没有做任何改变,只是想改变分支。
将有问题的文件移动到其他位置。 然后从树中删除有问题的文件。 再拉一次。 然后将来自违规文件的更改分散到您刚刚拖动的文件中。 黑客,但它的作品。
看起来你的工作副本中有未跟踪的文件,这些文件在另一个分支上被跟踪。 Git拒绝签出其他分支,因为当前未跟踪的本地文件将被另一分支上的文件覆盖。
你现在可以
- 将这些文件添加到您当前的分支,如果这些文件与此分支相关
- 删除这些文件,如果他们不需要
非常类似于@JohnHammink答案,但在这里。
解
- 删除文件到另一个目录。
- 提交您的更改(可能会显示您只删除了两个文件)。
- 再次将文件添加到目录。
- 提交(你应该只能看到一个正在提交的文件)。
在我的情况下,这是因为一个文件,只改变了案件改名。 例如fooViewModel到FooViewModel。 Git一直在想,同一个文件实际上是两个单独的文件。
我认为这与Unix区分大小写,而窗口不是真的有关。
希望这可以帮助
我有同样的问题,这解决了我的问题(在Linux上):
git config --global core.autocrlf input