基于Makefile.am生成的Makefile.in能否移出Git版本控制并加入.gitignore?
关于Autotools项目Makefile文件版本控制的问题解答
你的理解完全正确,具体说明如下:
- Makefile.am:这是你手动编写的核心配置文件,包含项目的构建规则、依赖关系、头文件路径、库链接等自定义逻辑,属于项目源代码的必要组成部分,必须纳入Git版本控制——这样其他开发者或构建环境才能基于它生成正确的构建文件。
- Makefile.in:这是
autoreconf(或automake)工具自动生成的模板文件,是configure脚本生成最终Makefile的中间产物。每次运行autoreconf或重新初始化构建环境时,它都会被重新生成,完全不需要纳入版本控制。
你可以安全地移除已有的Makefile.in文件,并且把它添加到.gitignore中。另外,为了保持仓库整洁,建议把以下自动生成的构建相关文件也加入.gitignore:
- 各级目录下自动生成的
Makefile(区别于你编写的Makefile.am) configure脚本config.h.in、config.hautom4te.cache/目录- Debug/Release目录下的所有构建产物和Makefile
这样能避免把环境相关的自动生成文件提交到仓库,防止不同操作系统或构建环境下的文件冲突。
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

