要解决的问题

准备修改服务配置前,先比较旧版和新版能帮助发现端口、路径等变化。两个文件不必位于 Git 仓库中。以下命令只比较文件,不应用补丁、不重启服务,也不把内容上传到远端。

适用环境

已安装 Git;示例命令在包含两份测试文件的目录执行。

操作步骤与示例

将以下内容放在对应终端或脚本中执行。示例路径、服务名需要与你的环境一致。

git diff --no-index -- old.conf new.conf

如何判断结果

先各自创建一份测试文本:old.conf 写 port=8000,new.conf 写 port=9000。输出中的减号行来自旧文件,加号行来自新文件。发现差异时此模式通常返回退出码 1,因此自动脚本不能把所有非零退出码都等同于比较过程损坏。

常见问题与排查

如果提示文件不存在,先检查当前目录和带空格路径的引号。末尾换行及行尾格式也会影响文本比较。忽略空白选项可能隐藏重要变化,首次核对配置时应先查看完整差异。

适用边界

差异显示不证明配置有效。应用前还需对应软件的语法检查和业务验证。包含密码的配置不宜直接把完整差异贴到公开渠道;只读比较也可能在终端留下敏感内容。

参考资料