这个问题和这个类似,但更具体。

我有一个项目有两个分支:阶段和测试。 我在分段上开发,并使用主分支来修复错误。所以如果我正在进行分期,我看到一个错误,我改变到主分支:

git checkout master

做这些事情:

git add fileToAdd
git commit -m "bug fixed"

然后合并两个分支:

git checkout staging
git merge master
git checkout beta
git merge beta

工作树中是否有其他文件并不重要。

但是现在,当我尝试更改到主分支时,我得到了一个错误:

error: Your local changes to the following files would be overwritten by checkout:
src/Pro/ConvocationBundle/Controller/DefaultController.php
Please, commit your changes or stash them before you can switch branches.
Aborting

我认为我应该从暂存区删除文件:

git reset HEAD src/Pro/ConvocationBundle/Controller/DefaultController.php

但是我得到了同样的错误。如果我做git状态,我得到No changes to commit


当前回答

如果不想提交本地更改,可以强制签出分支。

git checkout -f branch_name

其他回答

İf你正在使用taskrunner,你应该停止它,做git更改,然后再次运行tasrunnner。否则,taskrunner将监视并更改跟踪文件,您正在使用git注释更改这些文件。

我遇到了同样的问题,用 Git checkout -f分支

注意-f开关。如果使用-f开关,您将丢失任何未提交的更改。虽然在某些用例中使用-f是有帮助的,但在大多数情况下,您可能希望保存更改,然后切换分支。上面解释了存储过程。

如果不想提交本地更改,可以强制签出分支。

git checkout -f branch_name

警告:运行此命令将丢弃本地更改。只有在希望丢弃本地更改时才运行此命令。

我遇到了同样的问题,用

git checkout -f branch

它的规范是相当明确的。

- f,力

切换分支时,即使索引或工作仍进行 树不同于头。这用于丢弃局部更改。

当从索引中检出路径时,不要在未合并时失败 条目;相反,未合并的条目将被忽略。

我得到了同样的错误。实际上,我试图用新的更新包覆盖颤振旧SDK包。所以这个错误发生了。

我用VS Code打开了flutter sdk目录,并清理了项目

在VSCode cmd中使用此代码

Git clean -dxf

然后使用git pull