我是 autotools 的新手,我正在从事一个 C 项目。我想将我的项目添加到 git 存储库。我需要在版本控制系统中跟踪由 autotools 生成的哪些文件,哪些应该忽略?
最佳答案
您不应将任何非手动编辑的文件置于版本控制之下。这意味着版本控制系统应该忽略任何生成的文件。我基本上仅将以下内容置于版本控制之下:
configure.ac
Makefile.am
AUTHORS
、NEWS
等文档文件Makefile.am
在子目录中
为了解决 Scharron 提出的“准备安装”版本的问题,有些人在项目的根目录中包含一个脚本,称为 bootstrap
或 autogen.sh
,当你检查一个新的副本时,你运行一次。你可以在我的一个项目中看到一个例子 here .对于一个更简单的项目,您的 autogen.sh
实际上只需要包含一行:
autoreconf --install || exit 1
尽管有些人喜欢在 autogen.sh
的末尾自动运行 ./configure
。
为什么不在版本控制中跟踪所有生成的文件?因为它们的内容取决于您构建的机器、生成它们所使用的自动工具的版本以及月相。任何时候这些更改中的任何一个,生成的 autotools 文件都会更改,并且您的提交中会出现很多垃圾。
此外,任何为了构建代码而将您的代码从版本控制中 check out 的人都应该安装了适当的开发工具,因此您真的不必担心人们会因为缺少自动工具而遇到麻烦。
VonC 所说的关于带有 configure
文件以生成 Makefile
的 C 项目对于 源代码分发 是正确的(.tar.gz
当您输入 make dist
) 时得到的文件,但不一定是从版本控制中新 check out 的副本。
关于git - 我应该将 Autotools 生成的哪些文件保存在版本控制存储库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3290908/