2016 - 2024

感恩一路有你

git初始化本地版本库的目的 怎样才能保持你的Git提交历史清晰?

浏览量:2200 时间:2023-05-01 17:30:27 作者:采采

怎样才能保持你的Git提交历史清晰?

Git是一个在线的开源的分布式版本控制系统,具高存储空间小、临时贮存区域快捷方便和多个工作流同样工作等特点。Git的功能虽说极为强大,但如果没有不明确的规范的流程并且操作的话,非常容易以至于提交历史混乱,甚至还代码,而git-flow工程流程是一种规范。

git-flow并不是要得用Git,它仅是将标准的Git新的命令用脚本组合了下来。

git-flow特点:

1、强大2个长期性分支

主分支master和开发分支develop。master不能用处中有比较稳定产品代码,你肯定不能再再提交代码到master分支上;develop是进行任何新的功能开发的基础分支,功能开发完后,代码将单独设置到develop分支,而且静静的等待被整合起来到master分支中。

2、强大3个短期分支

分别是功能分支(featurebranch)、预查找分支(releasebranch)和补丁分支(hotfixbranch)。feature分支应该是当前正在进行的功能点开发的分支;等所有的功能开发完另外单独设置到develop分支后,需要打一个release分支,来表示将要要首页了;等我们的产品下线后,如果没有发现到有bug,此时不需要建一个hotfix分支来通过再修复。这几个分样一来成功开发,都会被胸壁痛进develop的或master分支,后再被彻底删除。

git-flow开发流程

1、项目重新初始化

当在项目的根目录先执行“gitflowinit”命令时,你会注意到有master、develop、feature、release、hotfix分支名称。

2、正在新功能

产品妹子过去了,说我们要接入苹果直接支付,就ok啦,新建项分支apple-pay,负责执行命令“gitflowfeaturestartapple-pay。

3、成功新功能

戴上耳机,劈里啪啦,1个小时候过后功能开发完了,结束该功能,不能执行命令“gitflowfeaturefinishapple-pay”。

4、准备着预发布

测试出来同学说,功能也测试出来完了,没有问题,准备公告可以更新吧,执行命令“gitflowreleasestartV1.1.5”,这个地方最好就是带上版本号。

5、完成预发布

在步骤4的基础上真接负责执行命令,“gitflowreleasefinishV1.1.5”。

6、发现自己bug

上不了线一个小时后,用户反馈冲值没有到账,立时刚建一个修复分支V1.1.5-fix,“gitflowhotfixstartV1.1.5-fix”,取掉耳机,噼里啪啦,10分钟后,bug能解决,测试验证实际,能够完成修复分支,

“gitflowhotfixfinishV1.1.5-fix”。

眼下,一个最简单git-flow工作流程就结束了了,当然了如果没有你有SourceTree的话,操作出声会更为方便,我希望我的回答对大家极大帮助。

如Git、SVN这类版本控制工具的原理是什么,以及如何操作?

Git是Linus之父Torvalds目的是管理方面Linux 内核代码设计而的新的一个开源的版本控制系统。

Linux核心的开发迭代是由许多分散开的程序员能够完成。当时大家具体方法的代码管理工具BitKeeper,只不过不开放源代码,影起我们的linux大佬强烈的不满,但又钦佩BitKeeper的较大提高其他工具的分布式架构,索性Torvalds自己变更土地性质了代码管理工具,那是GIT。听他们说从无到实战部署只花了10天时间。

而GIT与Svn最核心的区别那就是GIT是分布式架构平台。而比Svn仅仅两个单纯的文件版本管理系统而言,GIT更是一个内容管理平台,版本控制甚至于只是因为一个次属功能。

我们打听一下GIT的结构就大致知道其工作原理。git分3个数据存储区:

工作区:能保存项目文件。

暂存区:原先能保存的修改后数据,还没有提交到仓库。

git仓库:之后贮存文件版本的仓库。

工作原理及通常操作命令:

对工作区修改(或新增)-gitomit。暂存区的目录树被自动更新,同样的工作区改(或新增加)的文件内容被写入到到一个新对象,而该对象的ID被记录信息在暂存区的文件索引中。

想执行并提交操作-gitcommit。暂存区的目录树不写版本库中,master分支会做你所选的更新。即master打向的目录树应该是提交时暂存区的目录树。

重新设定暂存区-gitresetHEAD。暂存区的目录树会被格式化处理,被master分支对准的目录树所重命名,但是工作区不受影响。

删除掉暂存区-gitrm--cached。会再从暂存区删除文件,工作区则不寻求改变。

暂存区文件完全覆盖工作区-gitcheckout。会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清理工作区中未直接添加到暂存区的改。

版本master分支文件遍布暂存区和工作区-gitcheckoutHEAD,会用HEAD打向的master分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令独具危险性:而且而且会清除工作区中未提交的改,也会清除暂存区中未再提交的修改。

当然了svn,目前我用的屈指可数,操作比git简单点,两者区别:

GIT是分布式的,SVN只有一个中央版本库。GIT把内容按元数据存储,而SVN是按文件。Git直接下载下来后,在OffLine状态下看的到所有的Log,SVN不可以。GIT没有一个全局的版本号,而SVN有,此点是svn的优点。SVN不能有一个指定你中央版本库。当这个中央版本库有问题时,所有工作成员会自然传承错误。而Git可以有无尽的个版本库。GIT的内容完整性要远远优于SVN。GIT的内容储存不使用的是SHA-1哈希算法。这能以保证代码内容的完整性,切实保障在遇到磁盘故障和网络问题时会降低对版本库的破坏。

分支 版本 代码 文件 Git

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。