Git提交时clean/smudge过滤器替换WiFi信息仅部分生效问题排查
问题排查与解决
可能的原因1:密码文本未精确匹配
你的clean过滤器里sed匹配的是Password1234纯文本,但如果源码中WiFi密码是带引号或其他包裹形式(比如"Password1234"),sed就无法匹配到目标内容,自然不会替换。
对比SSID的替换成功,说明你的源码中SSID的文本是精确的My personal Wifi(和过滤器匹配项一致),但密码的实际写法可能和Password1234有差异(比如带引号、前后有空格等)。
可能的原因2:Git缓存了旧文件内容
修改Git过滤器配置后,Git可能还在使用之前缓存的文件快照,不会自动重新应用新过滤器。需要强制让Git重新处理文件:
git add --renormalize .
执行这个命令后,再提交就能让clean过滤器重新生效。
验证方法
可以先手动测试sed命令是否能正确替换你源码中的密码:
sed -e "s/Password1234/WIFI_PSK/g" your_file.ino
如果输出中密码没被替换,说明匹配文本和源码实际内容不一致,需要调整sed的匹配规则(比如加上引号:s/"Password1234"/"WIFI_PSK"/g)。
内容的提问来源于stack exchange,提问作者N. Her
相关产品推荐
相关产品推荐

