You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将GitHub上的Visual Studio C++项目/解决方案转CMake并保留Git提交?

核心结论

完全可以满足你的需求:不需要新建GitHub仓库,就能把现有Visual Studio C++解决方案转成CMake项目,同时完整保留所有历史Git提交记录。
这事从原理上就没有障碍:Git跟踪的是仓库里的文件变更历史,和项目本身的构建格式完全不绑定——你对构建配置的新增、修改、删除操作,都会作为新的提交节点追加到原有提交链上,不会改动任何已有的历史记录。

具体操作流程
  • 先在本地把现有仓库拉到最新状态,执行git status确认工作区没有未提交的本地改动,避免迁移过程中混进无关文件
  • 逐项目完成CMake配置迁移:
    • 给每个原有的C++工程(对应原来的.vcxproj文件)写独立的CMakeLists.txt,把原有工程的源文件列表、头文件包含路径、编译宏、依赖库链接配置逐项迁过去就行
    • 给原.sln对应的仓库根目录写顶层CMakeLists.txt,通过add_subdirectory()把所有子工程纳进来,替代原来解决方案的工程组织作用
    • 新增的CMake配置会被Git识别为新的追踪对象,原来的.sln、.vcxproj文件可以先留一阵,实现Windows端Visual Studio开发、Mac端CMake开发的双轨兼容
  • 配置验证完之后,走正常的Git提交流程就行:
    • 执行git add .把所有新增、修改的文件加入暂存区
    • 执行git commit写上对应迁移的提交信息
    • 执行git push把变更推到原来的远程仓库
      整个过程根本不需要碰任何改写Git历史的操作,之前的所有提交、分支、标签、关联的PR记录都会完完整整保留下来。
实操注意事项
  • 别一开始就把所有VS原生工程文件全删了:等Mac端验证完所有项目能正常编译、核心功能跑起来没毛病之后,再在下一次提交里删掉旧的.sln/.vcxproj配置,过渡得更平滑
  • 原来VS工程里的Windows专属代码逻辑,可以在CMake配置里加平台判断条件做区分,不用为了跨平台开发把原有业务代码全推翻重写
  • 你完全可以把迁移的内容放在独立开发分支上,等所有验证过了再合并到主分支,一点不影响原仓库的协作流程

内容的提问来源于stack exchange,提问作者NeoZoom.lua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 00:24:04