熟练使用版本控制工具,差不多是每个编程人员必备的技能,它能极大提高团队间协作的效率,经常使用的版本控制工具要数git
和svn
。工作中使用git较多,就讲一讲git的使用方法和实例。
git介绍
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开始着手开发 Git 来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。
Git基础
Git首先需要掌握的概念
* 工作区:就是在电脑里能看到的目录
* 版本库:工作区有一个隐藏目录.git
,这个不算工作区,而是Git的版本库,版本库里面存了很多东西,其中最重要的就是暂存区
(stage或index),Git为我们自动创建的第一个分支master
,以及指向master
分支的一个指针叫做HEAD
* 远程库(中央仓库)
结构如下所示:
工作区内修改的代码提交到远程库需要三步:
* git add
把代码文件添加到暂存区
* git commit
把暂存区的内容提交到当前分支
* git push
把代码推到远程库
Git工作流
掌握工作流能更好的实现团队间通过远程库进行协作。
中心化的工作流
中心化的工作流需要远程库存在一个master
分支即可
A和B同时对项目修改,A和B的本地都有了各自的历史,A先提交代码到远程库,不会发生问题,B再提交的时候就会产生冲突
远程库在这里作为中央仓库代表官方项目,因此它的提交历史应该被视作神圣不可更改的。如果开发者的本地提交和中央仓库分叉,Git会拒绝将他们的修改推送上去,因为这会覆盖官方提交
冲突解决办法:先将代码拉到本地,再执行rebase
操作
完整命令
git pull --rebase origin master
合并过程如有冲突,需手动进行修改,可以用git status
查看当前工作区状态
合并完成后
git push origin master
Feature分支的工作流
团队成员在不同的分支上修改不同功能,等待功能模块完成后再合并到主分支。隔离功能开发后,通过pull request
合并代码,也可以和其他成员沟通,其他成员对代码查看和提问。
我们项目组中使用这种工作流
GitFlow工作流
GitFlow工作流围绕项目发布定义了一个严格的分支模型,方便管理大型项目。和功能分支相比,这种工作流没有增加任何新的概念或命令。除了功能分支之外,它还为准备发布、维护发布、记录发布分别是用了单独的分支。
它有两个分支来记录项目历史。master
分支存储官方发布历史,develop
分支整合功能分支,这两个分支不直接交互。
开发分支:如果develop
分支的新功能足够发布,可以从develop
分支fork
一个发布分支,只有和发布相关的任务应该在这个分支进行,如修复bug、生成文档等。完成发布后,发布分支合并会master
和develop
分支
维护分支,通常有以下约定:
* 从develop
创建
* 合并进master
分支
* 命名规范release-*
Fork工作流
Fork工作流与其他工作流不同的是,每个开发者都有一个远程代码库和本地代码库,Fork工作流的主要优点在于贡献可以轻易地整合进项目,而不需要每个人都推送到单一的远程库,开发者将代码推到个人仓库后在告知中央仓库需要合并代码
项目管理员执行合并操作时可以有两步:
直接检查PullRequest
中检查代码
将代码拉取到本地仓库然后手动合并
以上对Git使用做了大致总结,欢迎补充。
鲁大师问:Git最常用和最不常用的5个命令分别是什么?
我答:
最常用的
git status
git log --oneline
git commit
git fetch
git merge
最不常用的
git pull
git add
git rebase
git clone
git reflog
鲁大师答:你没救了
我答:哈哈哈。。。
声 明
本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
关于绿盟科技
北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。
基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。
北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市交易,股票简称:绿盟科技,股票代码:300369。
如果您需要了解更多内容,可以
加入QQ群:570982169
直接询问:010-68438880