GIT 使用教程 介绍-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

GIT 使用教程 介绍

简介: GIT @(版本管理) Git 分布式版本控制系统,客户端并不只是提取最新的版本文件快照,而是把代码仓库完整地镜像下来。GIT 三个工作区域:Git 仓库、工作目录以及暂存区域。

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

首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。


img_7ef2aece6610751227b860961df915b9.png
1476771467604.png

Git 主分支的名字,默认叫做 Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。
开发分支

二、开发分支 Develop

主分支只用来发布重大版本,日常开发应该在另一条分支上完成。把开发哟农户的分支叫做 Develop。


img_d59a95ff39a46bc8b567211485537457.png
1476771640524.png

这个分支可以用来生成代码的最新隔夜版本(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 分支。


img_4c7f299cc6bd44a50704e3d7024f7bf7.png
1476772177549.png

使用 --no-ff 参数后,会执行正常合并,在 Master 分支上生成一个新节点。为了保证版本演进的清晰,希望采取这样做法


img_a1ed39a3c6a9b28fa6621e8ee870bcd3.png
1476772252203.png
三、临时性分支

上面讲到版本库的两条主要分支:Master和Develop。前者用于正式开发,后者用于日常开发。其实,常设分支只需要这两条就够了,不需要其他了。
但是除了常设分支以外,还有一些临时性分支,用于应对一些特定目的的版本开发。

临时性分支主要有三种:

  1. 功能(feature)分支
  2. 预发布(release)分支
  3. 修补 bug(fixbug)分支

这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有Master和Develop。

四、功能分支

功能分支,它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。

img_4a25e831d0a1f4f609eb9a3b23898e33.png
1476773001592.png

功能分支的名字,可以采用 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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: