认识分支
Git中分支管理是Git的一大特色,由于在实际项目开发中的也确定性以及需求变更的复杂性,所有的开发都集中在一条分支上开发势必造成开发与维护成本的提高。以软件项目开发为例,由于开发会有多个开发周期,发布多个软件版本,每个已发布的版本又可能出现Bug,以及适应时代的变化,不断升级软件,推出新功能。这些都是开发中可能出现的情况,试想这些开发都在一个分支(目前是master)上进行开发,那么会严重影响软件的开发进度,这样算下来的时间成本是非常之高的。现在流行的敏捷开发方式就需要完善的分支管理方案。
使用分支将某个功能或者Bug的修复独立出来,这样就实现了与主开发分支的隔离,不同开发组的开发工作也不会发生冲突,大大提高了开发效率。
分支操作
分支命令
在Git中使用非分支操作命令是git branch
。该命令的用法有如下几种:
//查看分支
git branch
//创建分支
git branch <branchname>
//从某个起始点创建分支
git branch <branchname> <start-point>
//删除分支
git branch -d <branchname>
//强制删除分支
git branch -D <branchname>
//重命名分支
git branch -m <oldbranch> <newbranch>
//强制重命名分支
git branch -M <oldbranch> <newbranch>
分支操作实例
继续上一篇文章的操作,查看之前的提交日志:
项目初始化
//配置命令别名
git config --global alias.lol "log --oneline --decorate --graph --all"
//之后就可以使用git lol查看日志了
git lol
输出如下:
* e4e0025 (HEAD -> master, origin/master) Merge tag 'mytag3' of file:///home/rhwayfun/java/notes/repos2/share
|\
| * 1ed8141 (tag: mytag3) blank commit for GnuPG-signed tag test.
|/
* 6d095e6 blank commit for annotated tag test.
* abb48d5 (tag: mytag) blank commit.
* 1e5c656 Merge README.txt: Hello, user2 and user1.
|\
| * 04eed97 create README.txt
* | b14d8be create README.txt
|/
* 0432ca1 Merge branch 'master' of file:///home/rhwayfun/java/notes/repos2/share
|\
| * 5f642a9 create team/user2.txt
*