git告诉我在尝试签出到新分支时使用--skip worktree提交或隐藏对排除文件的更改

git告诉我在尝试签出到新分支时使用--skip worktree提交或隐藏对排除文件的更改,git,Git,我有一些文件被排除在git更改之外。 我可以在本地更改文件,并且更改不会显示在git状态中 但是,如果我尝试挤压分支,或者尝试签出到新分支,它不允许我这样做,而不将更改提交到这些文件 我如何管理这些文件 或者,尝试签出到新分支,它不允许我这样做,而不提交对这些文件的更改 这就是为什么Git 2.25.1(2020年2月)现在包括: 用户经常尝试使用“假定未更改”和“跳过工作树”来告诉Git忽略对跟踪文件的更改 这并没有像预期的那样起作用,因为Git可能仍然会检查工作树文件 执行某些操作时的索引。

我有一些文件被排除在git更改之外。
我可以在本地更改文件,并且更改不会显示在
git状态中

但是,如果我尝试挤压分支,或者尝试签出到新分支,它不允许我这样做,而不将更改提交到这些文件

我如何管理这些文件

或者,尝试签出到新分支,它不允许我这样做,而不提交对这些文件的更改

这就是为什么Git 2.25.1(2020年2月)现在包括:

用户经常尝试使用“假定未更改”和“跳过工作树”来告诉Git忽略对跟踪文件的更改

这并没有像预期的那样起作用,因为Git可能仍然会检查工作树文件 执行某些操作时的索引。
一般来说,Git不提供忽略对跟踪文件的更改的方法,因此建议使用其他解决方案

例如,如果要更改的文件是某种配置文件,则存储库可以包含一个示例配置文件,然后将其复制到忽略的名称中并进行修改。
存储库甚至可以包含一个脚本,将示例文件视为模板,自动修改和复制它

我在一篇文章中引用了最后一部分

或者,尝试签出到新分支,它不允许我这样做,而不提交对这些文件的更改

这就是为什么Git 2.25.1(2020年2月)现在包括:

用户经常尝试使用“假定未更改”和“跳过工作树”来告诉Git忽略对跟踪文件的更改

这并没有像预期的那样起作用,因为Git可能仍然会检查工作树文件 执行某些操作时的索引。
一般来说,Git不提供忽略对跟踪文件的更改的方法,因此建议使用其他解决方案

例如,如果要更改的文件是某种配置文件,则存储库可以包含一个示例配置文件,然后将其复制到忽略的名称中并进行修改。
存储库甚至可以包含一个脚本,将示例文件视为模板,自动修改和复制它


我引用了中的最后一部分。

我假设这些文件是一些配置文件。我建议采用以下方法。让Git知道这些更改:

git update-index --no-skip-worktree EACH_FILE 
git stash save "Save local conf"
隐藏这些更改:

git update-index --no-skip-worktree EACH_FILE 
git stash save "Save local conf"
现在,您可以毫无问题地签出到其他分支,然后恢复本地更改:

git stash pop

您可以修复冲突(如果有),接受本地更改。

我假设这些文件是一些配置文件。我建议采用以下方法。让Git知道这些更改:

git update-index --no-skip-worktree EACH_FILE 
git stash save "Save local conf"
隐藏这些更改:

git update-index --no-skip-worktree EACH_FILE 
git stash save "Save local conf"
现在,您可以毫无问题地签出到其他分支,然后恢复本地更改:

git stash pop

您可以通过接受本地更改来修复冲突(如果有)。

拥有示例文件并复制它对我来说不是一个选项,不幸的是,因为该文件需要更改并由其他成员推送。@priosshrsth内容筛选器驱动程序意味着您有一个私有文件生成,而一个正式文件(具有不同的名称)仍然可以更改和推送。拥有示例文件并复制它对我来说不是一个选项。很遗憾,因为该文件需要由其他成员更改和推送。@priosshrsth内容筛选器驱动程序意味着您生成了一个私有文件,而官方文件(具有不同名称)仍然可以更改和推送。