首页 > 解决方案 > --skip-worktree 不会让我更改分支

问题描述

我有一个本地文件,我需要更改一些我使用的值:

git update-index --skip-worktree myfile.ts

这有效,但现在当我尝试更改分支时,出现错误:

error: Your local changes to the following files would be overwritten by checkout:
        myfile.ts
Please commit your changes or stash them before you switch branches.

但我不能把它藏起来,因为它被忽略了?

--no-skip-worktree设置然后存储它并更改分支的唯一解决方案是什么?这是非常不方便的工作流程。

难道我做错了什么?

标签: git

解决方案


--skip-worktree选项专为稀疏结帐而设计;它并非旨在让您在 Git 不知道的情况下修改文件。在 Git 不知情的情况下,无法修改被跟踪的文件。

如果您需要这样做,您将需要能够存储您的更改并恢复它们。但是,正如您所暗示的那样,这是一个次优的工作流程。

通常,如果您尝试修改已签入的配置文件或类似文件,最好的方法是为您签入的该文件创建一个模板,然后使用该模板生成配置文件。这使您可以通过修改模板配置来指定不同环境中的自定义配置设置。


推荐阅读