Git 版本控制核心命令与实战流程
一、Git 简介与环境准备
Git 是一款分布式版本控制软件,用于管理代码的历史变更。就像保存文档的不同版本(如'初稿'、'终稿'),Git 能记录每一次修改,支持随时回退或对比差异。
1. 安装与配置
安装过程较为简单,网上教程众多。安装完成后,建议先配置用户信息,这样每次提交都会带上你的身份标识:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
2. 命令行工具选择
推荐使用 Git Bash 而非 Windows CMD。Git Bash 内置了类 Linux 命令(如 ls, mkdir),操作更便捷,且文件列表会有颜色区分,便于识别状态。
二、基础工作流程
所有 Git 操作通常都在项目根目录下进行。
1. 初始化仓库
将当前文件夹变为 Git 仓库:
git init
执行后,目录中会生成一个隐藏的 .git 文件夹,它存储了所有版本数据。相比直接拷贝文件,这种方式更节省空间,后续提交仅保存差异内容。
2. 查看状态
在操作前,先了解当前文件状态:
git status
- 红色:未跟踪的新文件或已修改但未暂存的文件。
- 绿色:已暂存(staged)的文件。
- 白色:已提交(committed)的文件。
3. 暂存与提交
Git 的工作流分为两步:暂存(Add)和提交(Commit)。
添加文件到暂存区:
git add <file>
# 或者添加当前目录下所有文件
git add .
此时文件状态应变为绿色,表示已准备好提交。
提交到本地仓库:
git commit -m "提交说明信息"
-m 后面紧跟本次提交的描述,建议写得清晰易懂,方便日后查阅历史。提交成功后,文件状态变白,工作树显示 clean。
查看历史记录:
git log
这里可以看到版本号、作者及提交时间。如果未配置用户信息,系统会提示输入,务必填写准确。
三、高级功能实战
1. 版本回滚与恢复
版本回滚
如果提交了错误的内容,可以使用 reset 命令回退到指定版本:
git reset --hard <commit_id>
这会强制将 HEAD 指针指向指定版本,工作区文件也会随之改变。注意: 此操作不可逆,请谨慎使用。
找回丢失的记录
回滚后若发现误操作,可用 reflog 查看所有 HEAD 的移动记录:
git reflog
即使 git log 看不到某次提交,只要它在 reflog 里,就能通过版本号再次找回。
2. 代码暂存 (Stash)
开发中途需要切换分支修复 Bug,但手头代码还没写完无法提交时,可以使用 Stash 暂存现场:
git stash # 暂存当前修改
git stash list # 查看暂存列表
git stash pop # 恢复最近一次暂存
git stash apply # 恢复指定编号的暂存
恢复时若涉及同一文件的冲突,需手动解决。实际工作中,基于分支处理 Bug 更为常见。
3. 分支管理与合并
创建与切换
git branch <branch_name> # 创建分支
git checkout <branch_name> # 切换分支
# 或者一步完成
git checkout -b <branch_name>
不同分支拥有独立的环境,互不干扰。例如在 dev 分支新建文件,切回 master 分支则看不到该文件。
合并分支
将开发分支合并回主分支:
git checkout master
git merge <branch_name>
合并时若修改了相同位置,会产生冲突,需手动编辑文件解决冲突标记后再次提交。对于整洁的提交历史,也可考虑使用 rebase,它将提交记录线性化。
四、远程仓库协作
为了多端同步代码,需要将本地仓库推送到远程服务器(如 GitHub、Gitee 等)。
1. 关联远程仓库
git remote add origin <remote_url>
origin 是远程仓库的别名,可自定义。
2. 推送与拉取
git push origin master # 推送到远程 master 分支
git pull origin dev # 从远程 dev 分支拉取更新
git clone <repo_url> # 克隆整个仓库
首次推送可能需要验证账号密码。日常开发中,建议定期 pull 以获取同事的最新代码,避免冲突累积。
五、团队协作规范
1. 分支策略
- master/main:生产环境代码,保持稳定。
- dev:开发集成分支。
- feature/bugfix:具体功能或修复分支,开发完成后合并至 dev。
2. 代码审查 (Code Review)
重要代码合并前需经过审查。流程通常为:开发者提交 PR/MR -> 组长 Review -> 合并至主分支。这能有效拦截潜在问题。
3. 忽略文件
创建 .gitignore 文件,列出无需版本控制的临时文件(如编译产物、日志、IDE 配置)。规则支持通配符,例如 *.txt。
4. 标签管理
使用 tag 标记特定版本(如 v1.0, v2.0),便于发布和回退:
git tag v1.0
git push origin --tags
掌握上述命令与工作流,能够显著提升个人效率并保障团队代码安全。

