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. SourceTree系列1:SourceTree连接github从无到有

    1.创建github仓库 完成之后复制项目地址 2.SourceTree clone项目到本地 这是本地文件夹 对文件夹中文件作出修改,例如添加一个文件 此时SourceTree中就会出现未暂存文件 ...

  2. SourceTree + Gerrit

    通过Mac 上的SourceTree向Gerrit服务推送代码 通过sourcetree向gerrit服务推送资源时不能直接推送.因为在gerrit上需要审查代码,审查代码之后才会合并到master. ...

  3. coding中预览html,通过 Coding 实现 Axure 原型托管 , WebIDE实现在线预览

    注册 Coding 账号这步就省略了...接下来步入正题~ 登录 Coding,新建一个项目... 码市新建项目 名称,项目描述,下面启用 README.md 可随意勾选,点击创建 PS :我还是不勾 ...

  4. 谁说用 Git 一定要用命令行?试试 SourceTree 吧

    本文可能是目前网上最全的一篇可视化使用git工具Sourcetree文章. 可能对于很多开发来说,只要搞懂git的push.pull.解决一些简单的冲突命令就好了,事实上git的功能十分强大,而通过背 ...

  5. Git log高级用法

    格式化Log输出 首先,这篇文章会展示几种git log格式化输出的例子.大多数例子只是通过标记向git log请求或多或少的信息. 如果你不喜欢默认的git log格式,你可以用git config ...

  6. git 代码回滚_谁说用 Git 一定要用命令行?试试 SourceTree 吧

    作者:邵磊http://juejin.im/post/59bc944d51882519777c5e07 整理:后端技术精选 前言 作为使用Sourcetree大于3年的我,已熟知git的每一个功能,并 ...

  7. Win10 下 ProtoBuf 安装编译以及在 C++ 中的用法

    ProtoBuf Protocol Buffer ( protoBuf 或 PB )是 google 的一种数据交换的格式,它独立于语言,独立于平台. google 提供了多种语言的实现:java.c ...

  8. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  9. Pandas_transform的用法

    先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...

最新文章

  1. 关键数据保险箱,AD RMS服务器部署指南
  2. 前段框架——Vue的get和post请求数据
  3. FDMemTable 数据集
  4. c# 读取txt方法
  5. [渝粤教育] 四川大学 传统文化与人生修养 参考 资料
  6. 优秀的程序员都应当知道的11个警句
  7. Python实现Excel与XML之间的转换
  8. MySQL安装到mac还是linux_MySql在Linux下安装和Mac下的配置
  9. 【LeetCode】75. Sort Colors(颜色排序)-C++实现的两种方法及超详细图解
  10. 解决执行hive语句时出现虚拟内存不够的问题
  11. 小组取什么名字好_给小组取个可爱的名字
  12. python+pygame之飞机大战-第一版源代码分析
  13. pdf转换器免费版安装和使用
  14. 百度地图API基础操作--导航篇
  15. springboot学习笔记11:分布式、微服务、springcloud概念区分
  16. 论文笔记(十六):Learning to Walk in Minutes Using Massively Parallel Deep Reinforcement Learning
  17. jetson windows_Jetson nano 配置远程桌面
  18. 图像生成论文阅读:GLIDE算法笔记
  19. Vue 脚手架搭建目录及文件详解
  20. vulnhub bulldog

热门文章

  1. 【学习笔记】ARM Cortex-A(armv7)编程手册
  2. 二分算法详解:整数二分及浮点数二分算法(Binary Search)(含算法模板)
  3. 数据结构实验课:实验五、二叉树操作及应用
  4. Linux攻关之基础模块五 Vim
  5. QList(增删改查)示例
  6. 第三代电子计算机的核心部件为,计算机基础试题
  7. 再读德鲁克#2 如何提升生产率
  8. Ecshop会员注册的Email 电子邮箱改成非必填项
  9. 计算机文件路径的表示
  10. SQL Server 损坏修复