目录
几乎所有的版本控制系统都以某种形式支持分支,使用分支意味着可以把工作从开发主线上分离开来进行重大的Bug修改、开发新功能,以免影响开发主线。
git branch
git branch 分支名
git checkout 分支名
git checkout -b 分支名
git merge 分支名称
不能删除当前分支,只能删除其他分支
git btanch -d b1 删除分支时,需要进行各种检查
git branch -D b1 不做任何检查,强制删除
当两个分支上对文件的修改可能会存在冲突,列如同时修改了同一个文件的同一行,这是就需要手动解决冲突,解决步骤如下:
1、处理文件中的冲突的地方
2、将解决完成冲突的文件加入暂存区(add)
3、提交到仓库(commit)
冲突内容处理:
● master (生产) 分支
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
● develop(开发)分支
是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线
要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。
● feature/xxxx分支
从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。
● hotfix/xxxx分支,
从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、
develop分支。
● 还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等等。
练习:分支操作
- ###########################创建并切换到dev01分支,在dev01分支提交
- # [master]创建分支dev01
- git branch dev01
- # [master]切换到dev01
- git checkout dev01
- # [dev01]创建文件file02.txt
- 略
- # [dev01]将修改加入暂存区并提交到仓库,提交记录内容为:add file02 on dev
- git add .
- git commit -m 'add file02 on dev'
- # [dev01]以精简的方式显示提交记录
- git-log
- ###########################切换到master分支,将dev01合并到master分支
- # [dev01]切换到master分支
- git checkout master
- # [master]合并dev01到master分支
- git merge dev01
- # [master]以精简的方式显示提交记录
- git-log
- # [master]查看文件变化(目录下也出现了file02.txt)
- 略
- ##########################删除dev01分支
- # [master]删除dev01分支
- git branch -d dev01
- # [master]以精简的方式显示提交记录
- git-log