首页 > 解决方案 > `git update-index --skip-worktree`之后`你对以下文件的本地更改将被checkout覆盖`

问题描述

我需要对本地远程存储库中的文件进行更改,并在我执行git commit/时让 git 忽略这些更改git push

已经有答案:https://stackoverflow.com/a/1753078/747050 https://stackoverflow.com/a/13631525/747050 他们都告诉使用

git update-index --skip-worktree <file-name>

当我执行此命令并更改文件,然后切换分支时git switch master,出现错误:

error: Your local changes to the following files would be overwritten by checkout:
        <file-name>
Please commit your changes or stash them before you switch branches.

既不编辑.git/info/exclude文件也git update-index --assume-unchanged无济于事。

标签: git

解决方案


您有分支 A,其中文件包含内容 X,分支 B 包含内容 Y,然后您对已忽略的文件进行了一些本地更改skip-worktreeZ。当从分支 A 切换到 B 时,git 应该如何知道文件之后的样子?它应该看起来像 Z、Y,还是应该从 X 和 Z 中提取一些变更集,并将其应用于 Y?

skip-worktree当文件的跟踪内容相同时工作得相当好,但是当存在差异时,切换分支时需要手动工作。


推荐阅读