首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >git签出在--假定-未更改的文件上抛出错误

git签出在--假定-未更改的文件上抛出错误
EN

Stack Overflow用户
提问于 2012-09-24 21:46:32
回答 2查看 5.4K关注 0票数 25

在特定分支上运行git update-index --assume-unchanged path/to/file之后,我无法使用git checkout切换分支。

它抛出以下错误:

错误:签出将覆盖您对以下文件所做的本地更改:

路径/to/file

请在切换分支之前提交或隐藏您的更改。

正在中止

但是git diffgit status都告诉我没有区别&没有什么可以提交/隐藏的。

如何从分支中切换出来?

有没有比git update-index --assume-unchanged更好的替代品(除了.gitignore,因为我不想让它被忽略)?(与问题2@git update-index --no-assume-unchanged doesn't work相同)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-16 20:48:01

经过一段时间的使用后,我现在更喜欢git update-index --skip-worktree,它是一个比git update-index --assume-unchanged更好的选择。

有关更多信息,请查看。

我还计划检查this answer to 中指定的方法,它似乎更具防御性。

票数 6
EN

Stack Overflow用户

发布于 2021-11-04 17:37:53

今天我遇到了同样的事情,令人失望的是,我找到的大多数答案都与@Sujay的答案相似--他们实际上并没有说明如何避免git checkout错误。

嗯,我在this page上找到了一个有效的解决方案(我不知道作者是谁,所以我可以表扬):

对我有效的解决方案是使用--

-worktree。然而,像上面的一些一样,即使在我想要保留本地更改的文件上设置了--skip-worktree标志之后,我也很难在标记分支和主分支之间切换,而git不会抱怨。

..。

将仅本地更改的

  1. cp <local-only_file> ~/
    • 复制到filesystem

上的安全位置

工作树中的

  1. git checkout <local-only_file>
    • ,签出文件以使其与主分支file

匹配

将有问题的文件从安全位置复制回working tree的

  1. git update-index --skip-worktree -- <local-only_file>
  2. cp ~/<local-only_file> ./

  1. git diff push

  • 不应显示任何更改;如果推送到主存储库,则<local-only_file>中不会包含任何更改

在继续上面的步骤之前,完整的解决方案从git update-index --no-assume-unchanged <filename>开始。执行完这些步骤后,我可以切换分支了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12566384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档