--skip-worktree不会让我更改分支

时间:2019-10-06 21:06:23

标签: git

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

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然后隐藏它并更改分支是唯一的解决方案吗?那是非常不方便的工作流程。

我做错什么了吗?

2 个答案:

答案 0 :(得分:0)

--skip-worktree选项用于稀疏签出;它并非旨在让您在Git不了解的情况下修改文件。在Git不了解的情况下,无法修改被跟踪的文件。

如果需要这样做,则需要能够存储您的更改并还原它们。但是,正如您暗示的那样,这是次优的工作流程。

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

答案 1 :(得分:0)

如果您希望git不在乎您更改我的文件,我认为您需要使用git update-index --assume-unchanged