转载地址:z​​​​​​​​​​​​​​SourceTree的基本使用

1. SourceTree是什么

  • 拥有可视化界面的项目版本控制软件,适用于git项目管理
  • window、mac可用

2. 获取项目代码

1. 点击克隆/新建

2. 在弹出框中输入项目地址,http或者ssh地址都可以

  如果箭头指向的仓库类型表明“这不是一个标准的Git仓库”,可能是有以下原因

    1) 项目地址获取错误

    2) 没有项目访问权限

3. 点击“克隆”,等待项目克隆完成,完成后,左侧只有一个分支master

  克隆完成后,得到的是发布后的master源码,如果想要获取最新的正在开发中的源码,需要对项目流进行初始化,点击“Git工作流”

  直接点“确定”,获取develop分支源码

  开发任务都是在develop分支上完成的

4. 分支共有5种类型

  1) master,最终发布版本,整个项目中有且只有一个

  2) develop,项目的开发分支,原则上项目中有且只有一个

  3) feature,功能分支,用于开发一个新的功能

  4) release,预发布版本,介于develop和master之间的一个版本,主要用于测试

  5) hotfix,修复补丁,用于修复master上的bug,直接作用于master

5. master和develop上文中已介绍过,当开发中需要增加一个新的功能时,可新建feature分支,用于增加新功能,并且不影响开发中的develop源码,当新功能增加完成后,完成feature分支,将新功能合并到develop中,更新develop上的代码

1) 新建feature。首先当前开发分支指向develop,点击“Git工作流”

选择“建立新的分支”

在预览中可看到,feature分支是从develop分出的,输入功能名称,点击确定,项目结构中增加feature分支,并且当前开发分支指向新建的feature分支

  2) 在F_add_feature分支下进行开发任务,并提交

以上操作分别增加了feature_1、feature_2、feature_3文件,共提交3次,现项目文件夹下共三个文件

当切换为develop分支后,会发现,在develop下并没有新增的三个文件,说明在feature下进行操作,并不影响develop分支源码

  3) 完成feature开发后,将feature中的源码合并到develop分支。将当前分支指向F_add_feature分支,点击“Git工作流”,选择“完成功能”

预览中,表明feature分支将合并到develop,点击确定,进行提交合并,合并成功后

  4) 需要再增加新的功能时,重复以上操作即可

  5) 当多人协作开发时,可能会出现,不同人员对同一文件进行操作,从而引起合并冲突,对这种情况进行模拟,在当前新建两个feature,分别对feature_1文件进行修改,然后分别合并

feature_1在feature_1.txt下做如下操作

feature_2在feature_1.txt下做如下操作

先后合并F_feature_1和F_feature_2,会出现冲突

点击close,查看未提交的更改,提示feature_1.txt出现冲突,

打开feature_1.txt

出现<<<<<<< HEAD、=======、>>>>>>> feature/F_feature_2,HEAD和=号之间表示当前分支下的代码,=号和>>>>>>> feature/F_feature_2之间表示要合并的分支下的代码,>>>>>>> feature/F_feature_2表示了要合并的分支的分支名称,

根据情况区分要保留的代码,要删除的代码,最后再删除<<<<<<< HEAD、=======、和>>>>>>> feature/F_feature_2

将修改的代码再进行一次提交

一旦出现feature合并冲突,要合并的feature分支不会被删除,如F_feature_2,确保合并没有问题后,可手动删除F_feature_2

6. 当开发到一定阶段,可以发布测试版本时,可以从develop分支,建立release分支,进入预发布测试阶段。点击“Git工作流”,选择“建立新的发布版本”

  

预览中可以看到,release是从develop分出的,输入发布版本名‘R_v1.0’,点击确定

R_v1.0为阶段性发布版本,主要用于发布前进行测试,后续的开发工作仍旧在develop上进行,如果在测试过程中发现问题,直接在release上进行修改,修改完成后进行提交

7. 对release分支R_v1.0进行两次修改后,测试完成,可以进行正式发布,在当前分支指向R_v1.0分支下,点击“Git工作流”,选择“完成发布版本”

在预览中可以看到,R_v1.0向develop和master分别合并,点击确定,完成正式发布。

完成合并后,默认指向develop为当前分支,master增加多个版本更新,将master分支推送到origin,完成线上发布

8. 正式版本发布后,develop可继续进行后续开发,当正式版本出现问题时,需要进行问题的修改,可以在master分支建立修改补丁hotfix。将当前分支切换到master,点击“Git工作流”,选择“建立新的修复补丁”

预览中hotfix分支是从master拉去出来的,输入修复补丁名,点确定

在该分支下进行master的问题修改,修改完成后进行提交。当所有补丁问题修改完成后,点击“Git工作流”,选择“完成修复补丁”

  

预览中,H_fix_1向master和develop分别合并,点击确定,完成分支合并。

合并完成后,默认当前分支为develop,master分支有版本需要更新,当前分支切换为master,进行推送,完成补丁修复。

9. 在完成发布版本和完成修复补丁时,如果遇到冲突,可仿照上述5进行冲突修改,再进行后续操作

SourceTree的基本使用 - 天字天蝎 - 博客园相关推荐

  1. 后台服务配制以及代码生成[木字楠博客]

    文章目录 1.Log4j2配制 1.1.pom文件配制 1.2.resource中添加log4j2.xml 1.3.启动测试 1.4.日志简单使用 2.Swagger3引入 2.1.依赖引入 2.2. ...

  2. 后台数据库连接以及工具类编写 [木字楠博客]

    文章目录 1.项目连接数据库 1.1.引入依赖信息 1.2.编写配置文件 1.3.新增数据库配置类 1.4.代码生成器编写 2.通用枚举类编写 3.统一结果集处理器 4.其他工具类 4.1.Bean拷 ...

  3. RSA加密解密在jsencrypt+c#的实现-博客园加密登录

    前几天发现博客园登录时,对登录的数据进行了加密,在我这种菜鸟看来算是高大上的功能了,于是决定研究一下. 后来发现其实园子里或者网上有类似文章,但好像都是php写的demo,并没有c#的示例,所以在收集 ...

  4. EasyUC博客助手 [支持:博客园,MSN/Live空间,CSDN, 博客之家,PJBlog,Z-Blog...]

    今天终于可以发布一个版本了.因为之前的考试和春节耽误了一些时间,不过总算还是初步完成了.之前也看到了园里已经有朋友Share了MSN发布博客的机器人的作品.我的这个程序也差不多,只不过是按照自己的想法 ...

  5. 如何统计博客园的个人博客访问量

    使用过新浪博客的人都知道,新浪博客的首页有访问量统计功能,迁移到博客园之后发现博客园却没有这项功能,所幸博客园在后台管理的设置选项中有一个公告栏和设置页首页脚代码功能,使用起来非常灵活和方便.借此我们 ...

  6. 前端小白也能快速学会的博客园博客美化全攻略

    前端小白也能快速学会的博客园博客美化全攻略 A呦V,博客园er的自我修养是什么?第一条,别只顾收藏和偷师呀,记得点"推荐"或关注本人喔~ 美化方法论简介 一般而言,需要选一个默认的 ...

  7. Asp.net MVC 仿照博客园的简单网站首页 列表设计

    本来我打算采用ajax提交请求,异步的请求获取数据,但是我发现如果这样的话就会拖慢开发的进度,拖长时间.所以在这篇博客中仿照首页的列表设计其实和左侧列表网站分类采用了同样的方式,通过局部视图的方式呈现 ...

  8. 博客园山寨版(asp.net mvc 开源)

    一 源码地址 github:https://github.com/songboriceboy/cnblogsbywojilu 二 网站实例 www.douyuehan.com 三 技术选型 采用woj ...

  9. 博客园设置访问统计功能-by beanmoon

    使用过新浪博客的人都知道,新浪博客的首页有访问量统计功能,迁移到博客园之后发现博客园却没有这项功能,所幸博客园在后台管理的设置选项中有一个公告栏和设置页首页脚代码功能,使用起来非常灵活和方便.借此我们 ...

最新文章

  1. 什么是SOLID原则(第3部分)
  2. AI闯入法律界,第一步是当律师的得力助手
  3. php enable all,php中的enable_dl配置如何有用?
  4. FormView里用FindControl找不到控件的解决方法
  5. 基建管控系统_科技|电力北斗科技创新为数字新基建赋能
  6. iframe 与div
  7. php表单的提交方法有什么,php – 确定哪个表单已提交的最佳方法是什么?
  8. PaddlePaddle(4)——简单高效的部署与推理方法(Ⅰ)
  9. 存储过程和transaction
  10. jdbc连接数据库mysql视频_jdbc连接数据库mysql视频
  11. 解决Tomcat控制台乱码(图文)
  12. 微信小游戏代码包侵权的避开技巧(含处理脚本代码)
  13. wordpress古腾堡淘宝客插件,支持京东淘宝
  14. python文本处理的第三方库是什么,python - 实现文本分类[简单使用第三方库完成]...
  15. android 工具 拓扑图,GitHub - AndroidHelper/graph.editor: HTML5拓扑图编辑器
  16. newLISP你也行 --- 字符串
  17. 石川:出色不如走运 (II)?
  18. 计算机电缆价格范围,计算机电缆DJYPVPR价格,报价
  19. Core Data 详解
  20. unity学习———2D人物的移动

热门文章

  1. Scala中zip或者zipWithIndex用法
  2. Java8新特性总结 - 序
  3. null最后如何排序的_LeetCode 148——排序链表
  4. 测试开发系类之接口自动化测试
  5. MatLab GUI Change Size 改变界面大小
  6. MapReduce: map读取文件的过程
  7. 贪心算法——找纸币问题
  8. Spark源码系列(四)图解作业生命周期
  9. MySQL prepare语句的SQL语法
  10. 三星手机即将获得完整的Linux发行版支持