Git 本地版本控制极简使用笔记(Qt 项目专用)

核心原则

全程仅需掌握5 个核心命令,满足日常开发、版本记录、回滚修复的全部需求,无需复杂操作,适配传感器环筛管理平台项目

一、基础准备(已完成,备查)

1. 仓库初始化(仅执行 1 次)

bash 复制代码
# 进入项目根目录(Windows系统必加/d,否则无法切换盘符)
cd /d F:\workProject\XXXXXXXXXXXX0707Qt5_6
# 初始化本地Git仓库
git init

✅ 成功标志:终端提示 Initialized empty Git repository in 项目路径/.git/

2. .gitignore 配置(已完成,核心作用:过滤无用文件)

项目根目录的.gitignore已配置 Qt 专属规则,自动过滤编译产物、配置文件、打包文件,避免仓库臃肿,无需手动修改。

二、日常开发核心流程(99% 场景用这 3 步)

步骤 1:修改代码后,查看修改状态(可选,推荐)

cpp 复制代码
git status

✅ 作用:清晰看到哪些文件被修改 / 新增 / 删除,确认需要提交的内容,避免漏提 / 错提。❌ 红色标识:未加入暂存区的修改文件;✅ 绿色标识:已加入暂存区的修改文件。

步骤 2:将所有修改加入暂存区(必执行)

cpp 复制代码
git add .

💡 关键:结尾的英文点号不能漏,代表「当前目录下所有修改文件」,一键全部加入暂存区,无需单个选择文件。

步骤 3:提交修改,生成新版本(必执行,核心步骤)

bash 复制代码
git commit -m "备注内容"
✅ 备注编写规则(核心:人话描述,一眼看懂)
  1. 格式要求:动作 + 具体内容(动宾结构,简洁明了,控制在一行);

  2. 推荐动作:修复 / 新增 / 优化 / 删除 / 更新 / 迭代;

  3. 项目适配示例

    bash 复制代码
    git commit -m "修复工具栏窗口拖动问题,移除事件过滤器"
    git commit -m "新增XX温度实时监控显示功能"
    git commit -m "优化传感器数据解析逻辑,提升实时性"
    git commit -m "迭代项目至V2.01,修复3个已知bug"
    git commit -m "更新.gitignore,过滤exeRealse打包文件夹"
    ✅ 提交成功标志:

    终端显示 X files changed, X insertions(+), X deletions(-),并自动生成唯一哈希版本号 (如3ccd76a)。

三、版本管理常用操作(查历史 / 回滚,必备)

1. 查看所有历史版本(最常用,查版本号 / 备注)

bash 复制代码
git log

作用:列出所有提交记录,包含版本号(前 6 位即可使用)、提交时间、提交备注

✅ 操作技巧:按Enter键翻页,按q键退出查看;

✅ 核心提取:每个提交最上方的commit 3ccd76a...前 6 位3ccd76a就是该版本的唯一标识

2. 回滚到指定版本(改崩代码时救命用,慎用)

方式 1:快速回滚到上一个版本
bash 复制代码
git reset --hard HEAD^

方式 2:回滚到任意历史版本(推荐,精准定位)

bash 复制代码
# 通用格式:git reset --hard 版本号前6位
git reset --hard 3ccd76a

⚠️ 重要提醒 :回滚操作执行后,当前所有未提交的修改会被彻底删除,且无法恢复

✅ 回滚前必做:先执行git status确认是否有未提交修改,若有需先提交或手动备份。

四、高频小命令(备查,解决局部 / 整体修改问题)

1. 放弃未加入暂存区的修改(单个文件)

bash 复制代码
# 通用格式:git checkout -- 文件名(含相对路径,若文件在子目录)
git checkout -- mainwindow.cpp
git checkout -- src/sensor.cpp

✅ 作用:把单个文件恢复到最近一次提交的状态,适合单个文件改崩时快速还原,不影响其他文件。

  1. 放弃所有未提交的修改(整个项目)
bash 复制代码
git checkout .

✅ 作用:一键还原整个项目到最近一次提交的状态,适合多处文件改崩且无需保留当前修改时。

五、避坑指南(核心注意,杜绝版本控制翻车)

1. 绝对不能删除的文件

项目根目录的.git文件夹(隐藏文件夹),是 Git 仓库的核心文件,删除后所有历史版本记录会永久丢失,无法恢复

2. 无需手动处理的未提交文件

.gitignore已自动过滤以下文件,无需手动选择排除,Git 会自动忽略:

  • 编译产物:build/、debug/、release/、*.exe、*.dll、*.lib
  • Qt 专属配置:*.pro.user、*.pro.user.*、*.autosave
  • 项目打包文件:envRealse/
  • 系统 / IDE 配置:Thumbs.db、.vscode/、.idea/、*.suo

3. 提交备注避坑

  • ❌ 禁止无意义备注:如修改代码、更新、bug修复(无法定位具体修改内容);
  • ❌ 禁止写入 Git 自动版本号:如3ccd76a版本更新(Git 会自动管理版本号,多此一举);
  • ✅ 必须写具体内容:如修复工具栏mousePress事件过滤导致的窗口任意位置移动问题

4. 回滚操作避坑

  • 回滚前务必反复确认:当前修改是否无需保留,避免误删重要开发代码;
  • 若需频繁回滚,建议回滚前记录最新版本号,防止回滚后无法恢复到最新状态。

|----------------------|-------------------|----------------------------|
| 命令 | 核心作用 | 适用场景 |
| cd /d 项目完整路径 | 进入项目根目录 | 所有 Git 操作前的基础步骤 |
| git status | 查看文件修改状态(红 / 绿标识) | 提交前确认修改内容,避免漏提 |
| git add . | 将所有修改加入暂存区 | 提交前必执行步骤 |
| git commit -m "备注" | 提交修改,生成新的版本记录 | 日常开发核心步骤,完成功能 / 修复 bug 后执行 |
| git log | 查看所有历史版本,提取版本号 | 回滚版本前查询对应版本号 |
| git reset --hard 版本号 | 回滚到指定历史版本 | 代码改崩、功能实现失败时还原 |
| git checkout -- 文件名 | 放弃单个文件未提交的修改 | 单个文件改崩,需快速还原时 |
| git checkout . | 放弃所有文件未提交的修改 | 多个文件改崩,无需保留当前修改时 |

七、日常使用流程示例(贴合传感器环筛管理平台项目)

场景 1:修复工具栏窗口移动问题后,保存新版本

  1. 打开终端,进入项目目录:cd /d F:\workProject\XXXXXXXXXXXXXX0707Qt5_6
  2. 查看修改文件:git status(确认mainwindow.cpptoolbar.cpp为红色修改状态)
  3. 将修改加入暂存区:git add .(此时修改文件变为绿色)
  4. 提交并生成版本:git commit -m "修复工具栏事件过滤器,禁用窗口任意位置移动功能"
  5. 确认提交结果:git log(查看提交记录,确认版本生成成功,记录版本号备用)

日常最舒服的工作流(推荐)

  1. 开 Qt Creator → 写代码
  2. 改完一段功能
  3. 打开 cmd → 进入项目
  4. 执行
bash 复制代码
git add .
git commit -m "修复窗口拖动问题"
  1. 回到 Qt 继续写代码
  2. 循环......

场景 2:改崩传感器数据解析代码,回滚到上一可用版本

  1. 打开终端,进入项目目录:cd /d F:\workProject\XXXXXXXXXXXXXX0707Qt5_6
  2. 查看历史版本:git log(找到上一可用版本的版本号,如8f2e3d
  3. 执行回滚操作:git reset --hard 8f2e3d
  4. 验证结果:打开 Qt 项目,确认代码已恢复到上一可用版本,可正常编译运行。

回滚代码

关闭 Qt → 执行回滚 → 再打开 Qt,防止回滚的时候,回复头文件和源文件,和目前编辑的产生冲突。

八、使用建议

  1. 把「常用命令速查」部分复制到文本文档,贴在电脑桌面,开发时直接复制命令,无需记忆;
  2. 日常开发遵循「修改代码→git status→git add .→git commit -m "备注" 」流程,每完成一个小功能 / 修复一个 bug 就提交一次,版本记录越细致,后续回滚越精准;
  3. 纯本地开发无需学习复杂操作(分支、合并、远程仓库等),掌握上述命令即可满足全部版本控制需求;
  4. 提交备注保持统一风格,便于后续自己 / 团队快速查阅历史修改记录。

文章word版本。通过网盘分享的文件:Git 本地版本控制极简使用笔记(Qt 项目专用)

链接: https://pan.baidu.com/s/1_PcoeHe2OLsOZ61VgdlSHg?pwd=1234 提取码: 1234

相关推荐
lazy H32 分钟前
从入门到日常开发,一篇文章掌握 Git 核心操作
git·后端·学习·github
zzqssliu8 小时前
煤炉自动代拍系统的队列设计与超时控制机制
git·github
一支绝命钩9 小时前
FPGA工程Git常用操作手册
git
克里斯蒂亚诺更新9 小时前
ruoyi角色权限的对应关系
笔记
a11177612 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
不搞学术柒柒13 小时前
Git新功能完整开发提交流程
git
破碎的南瓜13 小时前
sqli--sql注入过关笔记(1,2,3,4,5,9)
数据库·笔记·sql
你想知道什么?14 小时前
线性回归-学习笔记
笔记·学习·线性回归
谙弆悕博士14 小时前
系统集成项目管理工程师教程(第3版)笔记——第17章:法律法规和标准规范
笔记·职场和发展·学习方法·业界资讯·软考·法律·法规
谙弆悕博士16 小时前
系统集成项目管理工程师教程(第3版)笔记——第4章:信息系统架构
笔记·系统架构·项目管理·创业创新·学习方法·业界资讯·物理