GIT
@(版本管理)
Git 分布式版本控制系统,客户端并不只是提取最新的版本文件快照,而是把代码仓库完整地镜像下来。GIT 三个工作区域:Git 仓库、工作目录以及暂存区域。Git 图形化界面软件推荐使用 SourceTree。
[toc]
Git 常用命令
操作 | 命令 |
---|---|
提交代码 | $git commit -a -m 'message' |
删除分支 | $git |
创建分支命令
// 默认在当前的分支上分出来的分支
$ git checkout -b branch_name
// 指定从 master 衍生出的分支
$ git checkout -b branch_name master
分支的合并
比如将分支 a 合并到 master。
回到 master 分支,运行 git merge 命令指定要合并进行的分支:
$ git checkout master
$ git merge a
删除分支
$ git branch -d branchName
撤销文件修改,把文件还原成刚克隆的样子
// 还原文件
$ git checkout --<文件>
// 还原整个项目
$ git checkout
Git 分支管理策略
参考文章:http://www.ruanyifeng.com/blog/2012/07/git.html
一、主分支 Master
首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。
Git 主分支的名字,默认叫做 Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。
开发分支
二、开发分支 Develop
主分支只用来发布重大版本,日常开发应该在另一条分支上完成。把开发哟农户的分支叫做 Develop。
这个分支可以用来生成代码的最新隔夜版本(nightly)。如果想正式对外发布,就在 Master 分支上,对Develop分支进行"合并"(merge)。
Git 创建 Develop 分支的命令:
$ git checkout -b develop master
将Develop 分支发布到 Master 分支的命令:
// 切换到 Master 分支
$ git checkout master
// 对 Develop 分支进行合并
$ git merge --no-ff develop
解释:上一条命令的 --no-ff 参数是什么意思。默认情况下,Git 执行“快进是合并(fast-farward merge)”,会直接将 Master 分支指向 Develop 分支。
使用 --no-ff 参数后,会执行正常合并,在 Master 分支上生成一个新节点。为了保证版本演进的清晰,希望采取这样做法
三、临时性分支
上面讲到版本库的两条主要分支:Master和Develop。前者用于正式开发,后者用于日常开发。其实,常设分支只需要这两条就够了,不需要其他了。
但是除了常设分支以外,还有一些临时性分支,用于应对一些特定目的的版本开发。
临时性分支主要有三种:
- 功能(feature)分支
- 预发布(release)分支
- 修补 bug(fixbug)分支
这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有Master和Develop。
四、功能分支
功能分支,它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。
功能分支的名字,可以采用 feature-*的形式命名。
创建一个功能分支:
$ git checkout -b feature-x develop
开发完成后,将功能分支合并到 develop 分支:
$ git checkout develop
$ git merge --no-ff feature-x
删除 feature 分支:
git branch -d feature -x
五、预发布分支
第二种是预发布分支,它是指发布正式版本之前(即合并到 Master 分支之前),我们可能需要有一个预发布的版本进行测试。
预发布是从 Develop 分支上面分出来的,预发布结束以后,必须合并 Develop 和 Master 分支。它的命名,可以采用 release-* 的形式。
创建一个预发布分支:
$ git checkout -b release-1.2 develop
确认没有问题后,合并到 master 分支:
$ git checkout master
$ git merge --no-ff release-1.2
// 对合并生成的新节点,做一个标签
$ git tag -a 1.2
再合并到 develop 分支:
$ git checkout develop
$ git merge --no-ff release-1.2
最后删除发布分支:
$ git branch -d release-1.2
六、修补 bug 分支
最后一种是修补 bug 分支。软件正式发布以后,难免会出现 bug 。这时就需要创建一个分支,进行 bug 修补。
修补 bug 分支是从 Master 分支上面分出来的。修补结束以后,再合并进 Master 和 Develop 分支。它的命名,可以采用 fixbug-* 的形式。
[站外图片上传中……(1)]
创建一个修补 bug 分支:
$ git checkout -b fixbug-0.1 master
修补结束后,合并到 master 分支:
$ git checkout master
$ git merge --no-ff fixbug-0.1
$ git tag -a 0.1.1
再合并到 develop 分支
$ git checkout develop
$ git merge --no-ff fixbug-0.1
最后删除“修补bug分支”:
$ git branch -d fixbug-0.1