Git-由于主机中的本地更改而合并时出错

Git-由于主机中的本地更改而合并时出错,git,version-control,merge,Git,Version Control,Merge,在主题分支中 git add . git commit -m "added new feature" git checkout master git merger topicBranch 给我以下错误: 错误:您对以下文件的本地更改将被“合并”覆盖: 查看日志,所讨论的文件只是深埋在xcuserdata目录中的某个断点相关文件。我的想法是运行git rm-cached path/to/that/file,有问题的文件将从索引中删除,git在合并时不会有问题。但它仍然失败 我的问题是如何让合并运

在主题分支中

git add .
git commit -m "added new feature"
git checkout master
git merger topicBranch
给我以下错误:

错误:您对以下文件的本地更改将被“合并”覆盖:

查看日志,所讨论的文件只是深埋在xcuserdata目录中的某个断点相关文件。我的想法是运行git rm-cached path/to/that/file,有问题的文件将从索引中删除,git在合并时不会有问题。但它仍然失败


我的问题是如何让合并运行?B既然git使用索引作为其主要关注区域,为什么从索引中删除有问题的文件不允许合并呢

您不应该从索引中删除该文件,而应该重置或隐藏它,这意味着删除本地更改:索引中仍然需要该文件:

git stash
# or
git checkout -- your/file # overwrite any local change
# or, nuclear option
git reset --hard
如果隐藏,则合并后将执行正常工作流。 事实上,我更喜欢git在git pull上为我隐藏信息的方式

存储在存储库中的未限制更改可以取出并应用于原始分支和其他分支

资料来源:

这就是git stash命令发挥作用的地方。与git reset-hard一样,它为您提供了一个干净的工作目录,但它也在内部记录您未完成的更改。 在修复了关键的bug之后,您可以重新应用这些更改,并从停止的地方重新开始。您可以将git stash视为正在进行的工作的暂停按钮


来源:

您运行的所有命令都是什么?你能用你按顺序发出的所有命令来修改你的问题吗?我把文件藏起来,分支就可以合并了。为了澄清,git在存储文件时做了什么?为什么这意味着可以合并我的分支?@user5797668我已经编辑了git stash文档的答案。