如何在维护本地副本的同时在git repo中保留默认的,未跟踪的文件?

时间:2018-07-25 21:10:10

标签: git

我找到了许多与此相关的主题,但是没有一个主题能够解决我要解决的特定问题。

我在存储库的根目录中有一个名为local.properties的配置文件。每个使用仓库的开发人员在此配置文件中将具有不同的值。我想在存储库中有一个默认文件,这样,如果开发人员克隆存储库(或者,如果可能的话,拉并没有该文件),它将被添加,但是我不想在本地跟踪更改(即,当他们对文件进行更改时,git不应将其作为修改后的文件进行跟踪)。我不希望开发人员必须执行任何额外的git命令来使其正常工作(例如git update-index --skip-worktree local.properties),并且理想情况下,即使分拆了回购协议,我也希望这种情况保持不变。 / p>

我根据this post的评论进行了尝试

  • 将模板文件推送到上游,调用git rm --cached local.properties,提交,然后将文件添加到.gitignore,然后提交并推送,但这会删除上游文件。
  • 将文件添加到.gitignore,创建模板文件,用git add -f local.properties强制添加,提交并推送它,但是更改仍在跟踪中(使用git rm --cached local.properties使我进入与以前相同的位置)

至少还有一些其他变体,它们以不同的顺序以及通过推送等方式执行这些操作,因此我无法使文件真正保留在存储库中,不会被跟踪,因为本地更改不会触发登台区域的修改。这可能吗?

1 个答案:

答案 0 :(得分:1)

使用另一个名称(例如local.properties.template)提交并跟踪模板,并让您的开发人员在首次克隆存储库时将其复制到实际名称。您甚至可以在您的存储库中包含一个设置脚本来为他们​​进行复制。