Git 分支是Git最强大的功能之一,它允许你在独立的开发线上工作,而不会影响主代码库。
分支是指向提交对象的可变指针。Git的默认分支名称通常是 main 或 master。
使用分支带来的主要好处:
提示: Git分支本质上只是指向提交对象的可变指针。Git使用 HEAD 指针来跟踪当前所在的分支。
列出所有本地分支
列出所有分支(包括远程)
查看分支及其最新提交
查看已合并到当前分支的分支
创建新分支
切换到指定分支
创建并切换到新分支
切换到分支(新命令)
合并指定分支到当前分支
将当前分支变基到指定分支
交互式变基
选择特定提交应用到当前分支
删除已合并的分支
强制删除分支
删除远程分支
清理已删除的远程分支跟踪
最佳实践: 使用描述性的分支名称,如 feature/user-authentication、bugfix/login-error 或 hotfix/security-patch。
每个新功能都在独立分支上开发:
严格的分支模型,适合有发布周期的项目:
注意: 选择适合团队规模和工作方式的分支策略。小型团队可能更适合功能分支工作流,而大型团队可能需要更严格的Gitflow工作流。
当目标分支是当前分支的直接上游时,Git只需将指针向前移动。
当两个分支都有新提交时,Git创建新的合并提交。
当同一文件的同一部分在两个分支中都有修改时,会发生合并冲突。
冲突示例:
git status 查看冲突文件git add 标记冲突已解决git commit| 方面 | 变基 (Rebase) | 合并 (Merge) |
|---|---|---|
| 历史记录 | 线性、整洁 | 保留分支结构 |
| 复杂性 | 可能更复杂 | 相对简单 |
| 适用场景 | 个人分支、未共享分支 | 团队协作、共享分支 |
| 风险 | 重写历史,风险较高 | 安全,不改变历史 |
重要原则:
git rebasegit pull --rebase警告: 永远不要对已经推送到远程仓库的提交使用变基,这会重写历史并给其他协作者带来问题。
使用一致的命名模式:
示例:feature/user-profile-page
保护重要分支:
在GitHub/GitLab中配置分支保护规则。
管理分支的完整生命周期:
保持仓库整洁,减少技术债务。
团队约定: 建立团队内部的分支管理规范,包括命名约定、合并流程、代码审查标准等,确保所有成员遵循相同的实践。