面对动则10G的ROM源码,在只有一个GIT仓库管理的模式下,如果都纳入GIT管理,会导致GIT各类diff、push、pull等效率非常非常慢,更或者你们公司配置的Gitlab后台压根支撑不了这么大体量的Git仓库,故只能针对源码选择性的纳入Git管理。
参考 git .gitignore 忽略规则的匹配语法 - 腾讯云开发者社区-腾讯云
使用git反向忽略机制来管理ROM源码,反向忽略的关键字为感叹号!
以下为ROM根目录下.gitignore文件案列
########先忽略掉所有文件
/*
########按需来解除需要纳入Git管理的文件,(在源码基础上有改动过的都考虑纳入Git管理)
!.gitignore
!.gitmodules
!README.md
!android.ipr
!android.iws
!android.iml
######部分目录需要git按需管理,系统定制上哪个目录有改动就将哪个目录放到git里
####build目录
!/build/
####frameworks目录,该目录当前是全部收入git
!/frameworks
####packages目录
!/packages/
/packages/*
!/packages/apps/
!/packages/providers/
!/packages/services
##/**/._*过滤掉开发人员使用IDE时产生的各类临时文件
/**/.project
/**/.DS_Store
/**/._.DS_Store
/**/*.patch
/**/.idea
/**/*.si4project
在开发过程中,哪个文件出现了定制化改动就通过反向忽略机制,解除过滤来纳入Git管理