主题
Git 与版本控制
Git 是每个开发者的基本功,也是企业协作的基础。这一章不追求背全命令,而是建立正确的工作流。
一、什么是 Git
Git 是一个分布式版本控制系统。它能记录每一次代码修改,支持多人协作,出了问题可以随时回滚。
工作区(你正在改的代码) → add → 暂存区 → commit → 本地仓库 → push → 远程仓库(GitHub)
← pull/fetch二、全局配置(装好后做一次)
bash
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"三、高频命令速查
| 操作 | 命令 |
|---|---|
| 克隆仓库 | git clone <url> |
| 查看状态 | git status |
| 查看改动 | git diff |
| 暂存文件 | git add . |
| 提交 | git commit -m "feat: 新增商品列表接口" |
| 推送 | git push origin main |
| 拉取最新 | git pull origin main |
| 查看历史 | git log --oneline -10 |
四、分支模型(企业标准:Git Flow 简化版)
真实企业一般按如下约定管理分支,本教程全程遵循:
main(生产分支,永远可发布)
└── dev(开发分支,日常开发合并到这里)
└── feature/xxx(功能分支,每个人从 dev 拉)bash
# 从 dev 拉功能分支
git checkout -b feature/user-module dev
# 开发完成后
git add .
git commit -m "feat: 用户注册登录模块"
git push origin feature/user-module
# 然后在 GitHub 上发起 Pull Request 合并到 dev提交信息规范
企业项目强制约定 commit message 前缀,也是 Code Review 的一部分:
| 前缀 | 含义 |
|---|---|
feat: | 新功能 |
fix: | 修复 Bug |
docs: | 文档 |
refactor: | 重构(不改功能) |
test: | 测试 |
五、.gitignore:别把不该提交的提交了
gitignore
node_modules/ # 依赖,装一下就有
target/ # Java 编译产物
.env.local # 本地密钥
.DS_Store # macOS 系统文件绝对不要提交:数据库密码、JWT 密钥、第三方 API Key。本仓库根目录已配置好 .gitignore(clone 后可在仓库根目录查看)。
六、团队协作的一天
1. 上班 git pull dev # 拉最新代码
2. 开始开发新功能
3. 阶段性 git add + commit # 小步提交,方便回滚
4. 下班前 push 并提 PR # 让同事 review
5. 通过后合并到 dev七、遇到冲突怎么办
多人改了同一个文件,git pull 时可能冲突:
bash
git pull origin dev
# 提示 CONFLICT,Git 会在文件里标出 <<<<<<< ======= >>>>>>>
# 手动保留需要的内容,删掉冲突标记,然后:
git add .
git commit -m "merge: 解决 xxx 冲突"小技巧
git log --oneline 记住每个提交号。改坏了?git checkout <提交号> -- <文件> 就能恢复某个文件。这是 Git 给你的"后悔药"。