一、什么是分支?
一句话:分支就是你的"平行宇宙"。在不影响主线的情况下,你可以在自己的分支上自由修改、开发新功能,改好了再合并回去。
生活比喻:你在写一篇文章,突然想尝试另一种写作风格,但又不想把原稿改乱。于是你复制一份副本,在副本上改。改好了再决定要不要替换原稿。这个副本就是"分支"。
二、分支核心命令
1. 查看本地分支
bash
git branch # 查看所有本地分支,前面带*的是当前所在的分支
2. 创建本地分支
bash
git branch 分支名 # 创建一个新分支
3. 切换分支
bash
git checkout 分支名 # 切换到指定分支
git checkout -b 分支名 # 创建并切换到新分支(最常用)
4. 合并分支
bash
git merge 要合并的分支名 # 把指定分支的修改合并到当前分支
5. 删除分支
bash
git branch -d 分支名 # 删除已合并的分支(安全检查)
git branch -D 分支名 # 强制删除(不管有没有合并)
三、合并冲突
什么时候会产生冲突? 两个分支修改了同一个文件的同一行,Git 不知道该保留哪个版本,就会产生冲突。
怎么解决?
- 打开冲突文件,找到冲突标记
<<<<<<<、=======、>>>>>>> - 手动选择保留哪部分内容,删除冲突标记
git add .→git commit -m "解决冲突"
四、实战演练
完整流程:创建dev分支 → 在dev上改代码 → 合并回master → 删除dev
bash
# 第1步:创建并切换到dev01分支
git branch dev01 # 创建dev01分支
git checkout dev01 # 切换到dev01(也可以用git checkout -b dev01一步完成)
# 第2步:在dev01分支上修改文件
# ... 写代码 ...
# 第3步:提交修改
git add .
git commit -m 'add file02 on dev'
# 第4步:切回master分支
git checkout master
# 第5步:把dev01的修改合并到master
git merge dev01
# 第6步:删除dev01分支(已经合并了,不需要了)
git branch -d dev01
五、开发中分支使用原则
| 分支类型 | 作用 | 说明 |
|---|---|---|
master |
生产分支 | 线上运行的代码,不能直接在上面改 |
develop |
开发分支 | 从master创建,日常开发在这里 |
feature/xxxx |
功能分支 | 从develop创建,开发新功能,完成后合并回develop |
hotfix/xxxx |
修复分支 | 从master创建,紧急修复线上Bug,完成后合并回master和develop |
今日核心总结
- 分支 = 平行宇宙:在自己的分支上随便改,不影响主线
- 核心命令 :
git branch→ 查看分支git checkout -b 分支名→ 创建并切换分支(最常用)git merge 分支名→ 合并分支git branch -d 分支名→ 删除分支
- 合并冲突 :两个分支改了同一行 → 手动解决 →
add→commit - 分支原则 :
master放稳定代码,develop放开发代码,新功能开feature分支