在 Ubuntu 上为 C++ 项目使用 Git 进行版本控制
一 环境准备
- 安装必备工具:编译器与构建工具(如 g++、make、cmake),以及版本控制工具 Git。
- 命令示例:
- 安装编译与构建工具:sudo apt update && sudo apt install g++ build-essential cmake
- 安装 Git:sudo apt install git
- 验证安装:
- 查看编译器版本:g++ --version
- 查看 Git 版本:git --version
- 以上工具安装完成后,即可在本地创建、编辑、构建 C++ 项目,并用 Git 管理源码版本。
二 本地仓库初始化与基本操作
- 初始化仓库:在项目根目录执行 git init
- 配置身份(全局一次即可):
- git config --global user.name “Your Name”
- git config --global user.email “your.email@example.com”
- 常用工作流:
- 查看状态:git status
- 添加文件:git add .(或指定文件/目录)
- 提交更改:git commit -m “描述本次修改”
- 查看提交历史:git log --oneline
- 这些命令覆盖日常开发中最常用的版本控制操作,适合 C++ 项目的日常迭代。
三 远程协作与分支管理
- 远程仓库:
- 关联远程:git remote add origin https://github.com/用户名/仓库名.git
- 首次推送并建立上游分支:git push -u origin master(如远程默认分支为 main,将 master 替换为 main)
- 后续推送:git push
- 拉取更新:git pull
- 分支管理:
- 创建并切换到新分支:git checkout -b feature/x
- 切换分支:git checkout main
- 合并分支:git merge feature/x
- 删除已合并分支:git branch -d feature/x
- 以上流程覆盖从首次推送到日常分支协作的关键操作,适合个人与小团队开发。
四 C++ 项目的 .gitignore 建议
- 推荐在仓库根目录添加 .gitignore,内容示例:
- 构建产物:/build/、/dist/、.o、.a、.so、.exe
- 编辑器与系统文件:.vscode/、.idea/、.swp、.suo、~
- 依赖与缓存:/third_party/(如用子模块管理则除外)、/vcpkg_installed/(如使用 vcpkg)
- 日志与临时:.log、.tmp
- 说明:C++ 项目通常将构建目录(如 build/)加入 .gitignore,源码与构建产物分离,便于多平台协作与 CI 构建。
五 与构建系统配合与常见建议
- 使用 CMake 管理复杂项目时,建议将 CMakeLists.txt 纳入版本控制,并在仓库中采用“out-of-source”构建(如在项目根目录创建 build/ 目录进行构建),避免将中间文件提交到仓库。
- 团队协作建议统一:编译器与标准(如 C++17/C++20)、依赖管理策略(如 vcpkg/conan/submodule)、代码风格与提交规范,减少环境差异带来的构建与运行差异。