SVN 分支(十一)
11.分支
一、分支的作用
- 将开发线分成多条独立线路,互不干扰。
- 典型场景:主干(trunk)继续维护原有功能,分支(branch)用于开发新需求或实验性改动。
- 分支本质上是主干的副本,具有完整的版本控制能力,最终可通过合并(merge) 回到主干。
二、创建分支
在本地副本中操作
1. 初始目录结构
runoob01/
├── branches/
├── tags/
└── trunk/2. 从主干复制创建分支
svn copy trunk/ branches/my_branch输出:
A branches/my_branch3. 查看状态
svn status输出:
A + branches/my_branch
A + branches/my_branch/HelloWorld.html
A + branches/my_branch/readme-
A +表示计划添加到版本库,且带有历史记录(copy 来源)。
4. 提交分支到版本库
svn commit -m "add my_branch"提交后新分支在版本库中正式生效。
三、在分支上开发
1. 切换到分支目录
cd branches/my_branch/2. 新增文件并提交
# 创建新文件
touch index.html
# 加入版本控制
svn add index.html
# 提交到版本库(仅影响当前分支)
svn commit -m "add index.html"分支的版本独立演进,不影响主干。
四、将分支合并到主干
1. 切换回主干目录
cd ../../trunk2. 更新主干到最新
svn update3. 执行合并
从分支合并到当前工作副本
svn merge ../branches/my_branch/输出示例:
--- Merging r10 into '.':
A index.html
--- Recording mergeinfo for merge of r10 into '.':
G .-
A表示新增文件(分支中创建的文件合并到主干)。
4. 查看合并后的结果
ll输出中包含 index.html。
5. 提交合并后的主干
svn commit -m "add index.html"合并完成后,分支的所有改动已集成到主干,版本号增加。
五、命令速查表
| 操作 | 命令 |
|---|---|
| 创建分支 | svn copy trunk/ branches/分支名 |
| 查看状态 | svn status |
| 提交分支 | svn commit -m "注释" |
| 切换分支目录 | cd branches/分支名 |
| 合并分支到主干 | svn merge ../branches/分支名 |
| 提交合并后的主干 | svn commit -m "注释" |
六、注意事项
- 分支和主干是独立版本线,各自提交互不影响。
- 合并操作在本地工作副本中进行,需要再次提交才能生效于版本库。
- 合并后主干会获得分支的所有修改历史,SVN 会记录合并信息(mergeinfo),便于后续跟踪。