Git 版本控制核心命令与实战指南
一、Git 简介与环境准备
Git 是一款分布式版本控制系统。通俗来说,它就像 Word 文档的历史记录功能,但更强大。它能帮你管理文件的不同版本,随时回滚,多人协作。
1. 环境说明
日常开发推荐使用 Git Bash,而不是 Windows 自带的 CMD。Git Bash 内置了类 Linux 命令(如 ls, cp, vim),操作体验更接近服务器环境,且支持文件名颜色区分,效率更高。
二、基础工作流
假设我们在项目根目录下进行操作。
1. 初始化仓库
使用 git init 将当前文件夹初始化为 Git 仓库。执行后,目录中会生成一个隐藏的 .git 文件夹,所有版本信息都存储在这里。
git init
初始化完成后,当前默认分支通常为 master(或 main)。
2. 状态查看与暂存
查看状态
使用 git status 查看文件状态:
- 红色:未跟踪的新文件或已修改但未暂存的文件。
- 绿色:已暂存(staged)的文件。
- 白色:已提交(committed)的文件。
添加文件
使用 git add 将文件加入暂存区。可以指定具体文件,或使用 . 添加当前目录下所有文件。
git add .
注意:修改后的文件再次变红时,需要重新
add。
3. 提交快照
使用 git commit 将暂存区的更改正式保存到仓库历史中。-m 参数后跟提交说明,建议描述清晰有意义。
git commit -m "修复商品货架模块的 Bug"
提交成功后,工作树会变干净(clean)。如果提示输入用户名和邮箱,需先通过 git config --global user.name 和 user.email 配置。
4. 查看历史
使用 git log 查看提交记录,包含版本号、作者、时间和提交信息。
git log
三、版本管理与回滚
1. 版本回滚
如果代码出错,可以使用 git reset 回退到之前的版本。--hard 参数会同时重置工作区和暂存区。
git reset --hard <commit_id>
警告:此操作不可逆,请谨慎使用。建议先确认 commit_id。
2. 找回误删记录
如果回滚过头,或者 git log 看不到某些记录,可以使用 git reflog。它会记录 HEAD 指针的所有移动历史,包括已经消失的提交。
git reflog
找到对应的 commit_id 后,再次执行 reset --hard 即可恢复。
四、分支管理
分支是 Git 的核心特性,用于隔离开发任务。
1. 创建与切换
git branch <分支名> # 创建分支
git checkout <分支名> # 切换分支
# 或者一步完成
git checkout -b <分支名>
不同分支下的文件是独立的。在 dev 分支创建的 a.py 文件,切换到 master 分支时不会显示。
2. 合并分支
回到主分支,使用 merge 将其他分支的代码合入。
git checkout master
git merge dev
合并过程可能会产生冲突(Conflict),通常是因为双方修改了同一文件的同一行。此时需要手动编辑文件解决冲突,标记为已解决后继续提交。
3. 常见场景:Bug 修复流程
当线上出现紧急 Bug 时,不要直接在主分支修改:
- 从主分支切出
bugfix分支。 - 修复问题并提交。
- 合并回主分支。
- 删除临时分支。
这种方式能保证主分支稳定,且便于追踪问题来源。
五、远程仓库协作
本地仓库只是副本,远程仓库才是共享中心。常见的平台有 GitHub、Gitee 等。
1. 关联远程地址
git remote add origin <远程仓库 URL>
2. 推送与拉取
git push origin master # 推送到远程
首次推送可能需要认证用户名和密码。如果是已有仓库,直接 push 即可;如果是新仓库,需先在网页端创建。
3. 克隆与同步
在新电脑上获取代码:
git clone <远程仓库 URL>
cd <项目目录>
git pull origin dev # 拉取最新代码
六、开发规范与最佳实践
1. 忽略文件
在项目根目录创建 .gitignore 文件,列出不需要上传的文件(如编译产物、依赖包、配置文件)。这能避免仓库膨胀和敏感信息泄露。
2. 标签管理
对于发布版本,使用 tag 进行标记。
git tag v1.0.0
git push origin --tags
3. 团队协作模式
- Master/Dev 分支:Master 存放稳定版,Dev 存放开发版。
- Feature 分支:每个新功能独立分支开发,完成后合并至 Dev。
- Code Review:合并前由组长或同事审查代码,确保质量。
4. Fork 与 Pull Request
参与开源项目时,通常采用 Fork 模式:复制项目到自己的账号下,修改后发起 Pull Request (PR) 请求原作者合并。
掌握这些核心命令,足以应对绝大多数日常开发需求。记住,Git 是为了服务代码,而非束缚代码,保持习惯清晰,协作才会顺畅。

