我正在尝试为我们的mysql数据库发起一些配置控制工具。首先,我们在包括DBA在内的所有开发机器上培训和安装GIT。我编写了一个php脚本,它提取了所有db的定义,所有表,函数,SP,视图和触发器,并将这个目录结构放入。
我最初的目的是自动将脚本以固定的时间间隔运行,并根据当时的db服务器状态重新创建目录,并让git提交差异。
在测试期间,我意识到每次运行脚本并执行git状态时,都会发现所有文件都被修改。当我做一个git diff我发现它是由于白色空间。主要是在行尾。在之前的提交过程中,我认为它们已被删除,当配置脚本运行时,它们都会返回,因此git认为所有文件都有变化。所以我不能做一个简单的git add。
配置管理脚本本身在Windows机器上运行,但它分析的数据库可以在任何平台上运行。
当前的git配置是autocrlf true和core.white-space all off
配置应该是什么,以便所有这些空格不会显示为git的差异。请记住,这是完全自动化的。
答案 0 :(得分:0)
我建议将core.autocrlf
设为false
。让Git自动尝试转换行结尾会导致问题无法结束。
Git不会自动修剪行尾的空格(除非你明确使用--whitespace=fix
) - 根据你提供的信息,问题似乎更有可能是行结束处理。