文件没有被git跟踪,但存在于远程repo中



我有一个自动生成报告的repo。其中一个要求是在那里签名,所以我想用示例签名制作文件。然后将其推送到远程,最后停止跟踪该文件,这样每个新用户都可以更改示例,但永远不会将其签名推送到远程。我假设新用户的高级程度不足以运行(或记住运行)命令:git rm --cached <file>

我想将更改应用于所有用户以实现场景:

  • 新用户克隆repo
  • 文件在repo
  • 用户更改文件
  • 没有额外的命令
  • git不跟踪更改

这可能吗?

我尝试了这个主题给出的解决方案,他们使文件不可用于克隆repo的新用户。

@edit我决定另辟蹊径。我留下了跟踪的示例文件,并在.gitignore中添加了签名文件。现在软件的任务是检查签名文件是否可用,并替换它的路径。

我通常设置一个模板存储库(您可以克隆,但不能推送),使用config.tpl(带有占位符值的模板文件)版本。

您可以在该项目中包含一个构建脚本,它将:

  • 检查'config'是否存在
  • 将提示您的签名,如果它不是
  • 将生成配置文件(已经存在于存储库的.gitignore中)

dame脚本还可以将远程origin重命名为upstream,并将origin设置为可以推送到的存储库。

但基本思想是:

用户在克隆/使用存储库时需要执行一些操作。如果这些操作是通过脚本(项目的版本化源代码的一部分)提供和完成的,那将是最好的。

最新更新