系统代码每次编译工作区必然变脏的本质原因在哪里系统代码每次编译工作区编译就一定会把那些文件回写而这些文件已被仓库跟踪。所以每次git status 变脏是因为编译把结果写进了 Git 已经跟踪的路径。ProjectConfig.mk、ko_list.txt、bazel.txt、defconfig、lk2 和 preloader 的 mk再加上 alps/ 里的 imgsensor_hw.c、project.mk、project_config.mkProjectConfig.mk 本身只有一个文件里面的变量会被 preloader、LK、内核这些子系统读到所以改它的影响面大。脚本选择盖到原路径是因为这些子系统只认那个固定路径。不改编译脚本的话编译就一定会把那些已跟踪文件盖脏挡不住。开发时让它们躺着就行不用为了 git status 干净去改源码。解决办法提交前把那几份盖出来的文件 git restore 掉。