给人看的Git状态文本,不适合直接按空格或换行拆分后交给脚本。文件名本身可以含空格,某些系统还允许换行,因此应选择为机器解析设计的输出格式。

显式选择格式版本和分隔符
git status --porcelain=v1 -z使用稳定的porcelain格式,并以NUL分隔路径相关条目。与逐行读取相比,它能避免把文件名里的换行误当成另一条记录。不要把终端看到的引号当成真实文件名的一部分。
重命名记录有两个路径
NUL格式并不意味着任意字段都能用同一种简单切片处理。重命名等记录包含来源与目标路径,顺序和普通显示格式也有区别。实现解析器前应明确支持哪些状态,并参照对应版本的格式说明。
先用无害文件名验证
本站在临时仓库创建普通名、带空格名和带换行名的未跟踪文件,验证NUL输出保留了三个完整名称。这个测试只覆盖未跟踪条目,不冒充完整Git状态解析器,也没有修改当前项目索引或提交。
资料与继续学习
Git:status的porcelain与NUL输出。资料查阅日期:2026年10月7日。步骤与练习由本站整理。
资料查阅与编辑日期:2026年10月7日。作者:玖柒。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END







