如何处理来自不同开发环境的提交

How to deal with commits from different development environments?

本文关键字:开发 环境 提交 何处理 处理      更新时间:2023-10-16

我决定将我的Visual Studio项目转换为CMake,以便在多个平台上进行开发。但我想知道如何有效地将版本控制应用于CMake项目。

比方说,从CMake项目中,我在Windows上生成了一个Visual Studio项目,并在Linux上设置了一个make文件。我不想在提交中包含那些特定于平台的文件。最佳做法是使用.gitignore排除所有这些文件吗?

这是我第一次想到的,我想知道这是不是正确的。例如,我还可以在我的存储库中包含所有不同平台的项目。

是的,如果使用CMake作为基本项目文件,则无论如何不要将生成的文件添加到存储库中。它们作为一个共享的东西实际上是无用的,而且通常是非常特定于计算机的。

正如评论中所说(由@Peter撰写,我无耻地将其复制到这里以提高可见性),在源树之外构建通常是个好主意(与Visual Studio的默认行为不同)。基本上,你做(从源目录)

cd ..
mkdir project-build && cd project-build
cmake ../project

您可以通过-G命令行选项告诉CMake使用特定的"生成器"。有关详细信息,请查看其帮助输出。您也可以通过CMake的GUI来完成此操作。