Git分支简介
Git分支是由指针管理起来的,所以创建、切换、合并、删除分支都非常快,非常适合大型项目的开发。
在分支上做开发,调试好了后再合并到主分支。那么每个人开发模块式都不会影响到别人。
分支使用策略:
- 主分支(默认创建的Master分支)只用来分布重大版本(对于每个版本可以创建不同的标签,以便于查找);
- 日常开发应该在另一条分支上完成,可以取名为Develop;
- 临时性分支,用完后最好删除,以免分支混乱。如:
- 功能(feature)分支
- 预发布(release)分支
- 修补bug(bug)分支
- 多人开发时,每个人还可以分出一个自己专属的分支,当阶段性工作完成后应该合并到上级分支。
分支常用命令
创建切换分支
创建并切换分支:
git checkout -b <分支名称>
这条命令和下面两条命令效果相同。
创建分支:git branch <分支名称>
切换分支:git checkout <分支名称>
合并分支
合并分支到当前分支
git meger <分支名称>
当两个分支修改同一个文件后,合并分支时会发生冲突,需要手动编辑被修改文件,解决冲突后再提交。
合并分支时,如果可能,Git会用
Fast forward
模式,在这种模式下,删除分支后,会丢掉分支信息。可以添加参数“–no-ff”,强制禁用Fast forward模式,这种普通模式下,合并后的历史有分支,能看出来曾经做过合并。(在合并时还需要添加信息“-m”)
下面分别看一下两者的区别。- Fast Forward 模式
- 普通模式(强制禁用Fast Forward)
删除与恢复分支
当分支已经合并到主分支,并且不再需要接着该分支继续开发(后期也可以从主分支分出来),可以删除该分支。
git branch -d <分支名称>
误删分支需要恢复
使用git log
查出分支的提交号。git branch <分支名称> <提交号>
,即创建提交号历史版本的一个分支,分支名称随意。
查看分支图
git log --graph
为了使分支图更加简明,可以加上一些参数。
git log --graph --pretty=oneline --abbrev-commit