我想知道本地计算机上的文件是否可能与文件的远程版本不同。
例如,如果我希望本地配置文件具有实际的服务器和端口设置,但我希望Github上的文件版本具有"默认"设置,以及要忽略的配置文件的任何新更改。
有人知道这是否可行?
答案 0 :(得分:4)
您可以使用--assume-unchanged
git update-index --assume-unchanged [filepath]
Git将忽略对此文件的任何进一步更改。
答案 1 :(得分:2)
如果该文件永远不会被其他任何人更改(并且永远不会运行git commit -a
),您可以保留修改后的版本,但它将始终显示在差异和状态输出中。跟踪文件后,您告诉Git您关心它,因此在更新工作目录时会尝试合并/更新。
针对此类情况的通常建议是:config.sample
文件(假设config
是应用程序从中读取配置的位置)存储默认值的位置,并让每个用户将其重命名为config
并设置自己的配置。
或者,让配置文件包含一个覆盖默认设置的config.local
,如果这是配置语言允许的话。
这通常也会使测试和部署更简单,因为没有跟踪文件在使用之间发生变化,并且会使部署/安装脚本更不可能覆盖用户的本地配置。