我正在和一个朋友一起做一个项目,同时使用GitHub进行工作。我是git的新手,当我们中的一个人将更改推送到GitHub时,它会更改build文件夹并更改CMake文件中的设置。我们如何才能在不影响彼此构建文件的情况下使用git呢?
发布于 2020-04-15 02:43:49
CMake构建目录应该包含通过CMake生成的文件和目录,并且不需要保存在源代码管理中。
我在Github上做过几个基于CMake的项目。根据我的经验,将build文件夹签入git存储库(或任何源代码控制)从来都不是一种标准做法。
与非CMake项目相比,CMake项目的一个巨大优势是构建工件(例如Visual Studio项目文件和具有用户特定设置的集成开发环境文件)不需要签入到您的存储库中;CMake会为您生成这些!
一个简单的基于CMake的项目结构将如下所示。您应该将CMakeLists.txt文件和源代码签入到git (或其他)源代码控件中。但是,I highly鼓励您组织您的项目,使您的CMake二进制目录中的任何内容都不需要被源代码控制跟踪:
projectRoot
├───.git/
├───build/ <---- Do NOT check in anything from 'build'.
│ CMakeLists.txt <---- Check in your top-level CMake source file.
├───src/ <---- Check in all your code and other CMake files.
│ CMakeLists.txt
│ MyClass.cpp
│ main.cpp这样,使用存储库的每个人都有自己的CMake构建目录。如果需要对构建进行更改,这些更改应该反映在CMakeLists.txt文件中。然后,当对CMakeLists.txt文件的更改被下载到本地存储库时,CMake可以重新生成任何需要更新的项目/构建系统文件。
发布于 2020-04-15 18:10:22
添加一个.gitignore文件(在根目录下),其中包含您不想版本化的目录/文件的列表,即您的构建目录...
https://stackoverflow.com/questions/61214752
复制相似问题