多彩编程 多彩编程MZPH · CODE BLOG
DEV TOOLS

Git 版本控制实战

从基础命令到团队协作,把每一次提交都记录得清清楚楚。

Git 版本控制实战

Git 是分布式版本控制系统,几乎是现代团队协作的标配。但很多开发者只停留在 add/commit/push 三件套,遇到冲突与回滚就手忙脚乱。这篇笔记把基础命令、分支策略、冲突解决、团队协作、GitHub 工作流五块串起来,每段命令都在真实项目里跑通。

一、基础命令

从零初始化一个仓库到完成第一次提交,最小命令集如下:

# 初始化仓库
git init

# 配置提交身份(首次必做)
git config user.name "your-name"
git config user.email "you@example.com"

# 查看状态与差异
git status
git diff

# 暂存并提交
git add .
git commit -m "feat: 初始化项目结构"

# 查看提交历史
git log --oneline --graph -10

提交信息建议遵循 Conventional Commits 规范:feat 新功能、fix 修复、docs 文档、refactor 重构,方便后续自动生成 changelog。

二、分支策略

团队最常用的是 main(稳定)+ develop(集成)+ feature/*(功能分支)三段式。常用分支命令:

# 新建并切换分支
git checkout -b feature/login

# 查看所有分支
git branch -a

# 切回主干
git checkout main

# 合并 feature 分支到当前分支
git merge feature/login

# 删除已合并的本地分支
git branch -d feature/login

# 变基:把当前分支提交挪到目标分支顶端
git rebase main

merge vs rebase:merge 保留分叉历史,rebase 让历史线性整洁。公共分支慎用 rebase,避免改写他人已拉取的历史。

三、冲突解决

合并或变基时若同一文件被双方修改,会产生冲突。冲突标记形如:

<<<<<<< HEAD
当前分支的内容
=======
被合入分支的内容
>>>>>>> feature/login

解决步骤:手动编辑文件保留正确内容 → 删除冲突标记 → git add <file>git rebase --continue(或 git commit)。复杂冲突可用:

# 启动可视化合并工具
git mergetool

# 放弃本次合并回到合并前
git merge --abort

四、团队协作

团队协作的关键是「先拉后推」,避免远程已更新导致推送失败:

# 关联远程仓库
git remote add origin git@github.com:team/repo.git

# 拉取远程更新(保留本地提交)
git pull --rebase origin main

# 推送本地分支到远程
git push -u origin feature/login

# 同步远程新建分支到本地
git fetch && git checkout origin/feature/x

# 暂存当前未完成修改,处理紧急任务
git stash
git stash pop

五、GitHub 工作流

开源与团队常用的 GitHub Flow:功能分支开发 → 推送 → 发起 Pull Request → Code Review → 合并。常用 PR 命令:

# 推送功能分支到远程
git push origin feature/payment

# 远程仓库发起 Pull Request(网页或 gh CLI)
gh pr create --title "feat: 接入支付" --body "支付模块初版"

# 同步主干最新代码到功能分支
git fetch origin
git rebase origin/main

# 强制推送变基后的提交(仅自己分支)
git push --force-with-lease origin feature/payment

--force-with-lease--force 安全,会在远程被他人更新时拒绝推送,避免覆盖他人提交。

小结

Git 的核心是「让每次变更可追溯、可回滚、可协作」。把基础命令、分支策略、冲突解决跑顺,再配合 GitHub Pull Request 流程,团队协作的代码质量与效率都会上一个台阶。

更新于 2026-07-26 · 阅读 980
RELATED

相关 技术好文

继续延伸阅读:版本控制之外的后端与工程实践。