首页 > 解决方案 > 如何在结帐/克隆中包含被忽略的文件?

问题描述

我想在 git 中有一个本地设置文件,其中包含一个变量列表(可能带有默认值),开发人员需要更改这些变量才能在本地工作。

这比告诉开发人员他们需要拥有的所有变量以及将其放入哪个文件更容易,因为它避免了“魔术”配置。

但是,如果我提交这个本地配置文件,当开发人员在本地工作时,它总是会被标记为已修改,我想避免这种情况。

如果我在一次提交中将它放在 .gitignore 中,而在另一次提交中将文件放在 .gitignore 中,也会发生这种情况,因为 git 会知道它并仍然跟踪它。

如果我这样做git rm --cached,它也会删除我不想做的文件。

我正在考虑用钩子创建它,但这些是本地的,而不是作为git clone.

有什么办法可以做到这一点?

标签: git

解决方案


正如Git 常见问题解答所述,您不能忽略跟踪的文件。Git 不允许这样做,因为不可能知道如何处理这些文件,并且经常使用的解决方案git update-index不起作用。

但是,常见问题解答提供了一个建议:

如果您的目标是修改配置文件,将文件签入存储库通常会很有帮助,该文件是一个模板或一组默认值,然后可以在旁边复制并根据需要进行修改。这第二个修改过的文件通常会被忽略,以防止意外提交它。

如果您愿意,可以使用脚本来执行此复制和修改。


推荐阅读