【发布时间】:2014-05-17 00:45:31
【问题描述】:
我想知道是否有可能在您的本地计算机上拥有一个与该文件的远程版本不同的文件。
例如,如果我希望本地配置文件具有实际的服务器和端口设置,但我希望 Github 上的文件版本具有“默认”设置,并且对配置文件的任何新更改都将被忽略.
有人知道这是否可行吗?
【问题讨论】:
我想知道是否有可能在您的本地计算机上拥有一个与该文件的远程版本不同的文件。
例如,如果我希望本地配置文件具有实际的服务器和端口设置,但我希望 Github 上的文件版本具有“默认”设置,并且对配置文件的任何新更改都将被忽略.
有人知道这是否可行吗?
【问题讨论】:
您可以使用--assume-unchanged
git update-index --assume-unchanged [filepath]
Git 将忽略对该文件的任何进一步更改。
【讨论】:
如果文件从未被其他人更改(并且从未运行git commit -a),您可以保留修改后的版本,但它会始终显示在差异和状态输出中。一旦你跟踪一个文件,你就是在告诉 Git 你关心它,所以当你更新工作目录时它会尝试合并/更新。
对于这种情况,通常的建议是有一个 config.sample 文件(假设 config 是应用程序从中读取配置的位置)存储默认值,并让每个用户将其重命名为 config 和设置自己的配置。
或者,如果配置语言允许,让配置文件包含覆盖默认设置的config.local。
这通常还会使测试和部署更简单,因为无需跟踪在使用之间更改的文件,并且会大大降低部署/安装脚本覆盖用户本地配置的可能性。
【讨论】: