分支是Git最强大的功能之一,允许你在独立的开发线上工作。
查看本地和远程分支:
创建新分支的不同方法:
安全删除分支的方法:
推荐的分支命名约定:
使用一致的命名规范有助于团队协作和分支管理。
新命令: Git 2.23+ 引入了 git switch 和 git restore 命令,专门用于分支切换和文件恢复,使命令语义更清晰。
在切换分支前,确保工作区是干净的:
注意: 如果工作区有未提交的更改,Git可能不允许切换分支,特别是当这些更改与目标分支的文件冲突时。使用 git stash 可以临时保存你的工作。
确保主分支是最新的
切换到要合并到的目标分支
将功能分支合并到主分支
将合并结果推送到远程仓库
当目标分支是当前分支的直接上游时,Git只需将指针向前移动。
合并后,main分支直接指向feature分支的最新提交。
当两个分支都有新提交时,Git创建新的合并提交。
合并后,创建一个新的合并提交(橙色),连接两个分支的历史。
| 方面 | 合并 (Merge) | 变基 (Rebase) |
|---|---|---|
| 历史记录 | 保留完整分支结构 | 线性、整洁的历史 |
| 适用场景 | 公共分支、团队协作 | 个人分支、功能分支 |
| 复杂性 | 相对简单 | 可能更复杂 |
| 风险 | 安全,不改变历史 | 重写历史,风险较高 |
黄金法则: 永远不要对已经推送到公共仓库的分支使用变基。变基会重写提交历史,给其他协作者带来问题。
Git提供多种合并选项来处理特定情况:
当合并产生冲突时的处理流程:
注意: 如果合并冲突太复杂或需要重新考虑,可以使用 git merge --abort 取消合并操作,回到合并前的状态。
警告: 只对尚未推送到远程仓库的本地分支使用变基。对公共分支使用变基会重写历史,给其他协作者带来问题。
团队协作提示: 在团队环境中,建议使用Pull Request(GitHub)或Merge Request(GitLab)进行代码审查,而不是直接合并分支。这有助于确保代码质量和团队一致性。