SourceTree

SourceTree安装

Sourcetree简化了与Git存储库交互的方式,因此您可以专注于编码。通过Sourcetree的简单Git GUI可视化和管理您的存储库。

当前官网最新的是3.3.8版本的。在安装之前,我们进行破解操作,主要就是为了跳过注册安装。

我的电脑是windows7, sourceTree是3.3.8

1、访问官网下载最新版本的sourceTree ,官网连接:https://www.sourcetreeapp.com/

2、先安装sourceTree, 他会提示缺少.NET Framework 4.7.1, 少什么就安装什么,安装成功后, 需要重启电脑,然后执行步骤3; 如果没有缺少,请忽略,直接执行步骤3

3、选择bitbucket的界面退出

4、打开我的电脑, 在地址栏输入:%LocalAppData%\Atlassian\SourceTree\

5、在此目录下新建名为accounts.json文件, 写入一下内容:

[

  {

    "$id": "1",

    "$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity",

    "Authenticate": true,

    "HostInstance": {

      "$id": "2",

      "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount",

      "Host": {

        "$id": "3",

        "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount",

        "Id": "atlassian account"

      },

      "BaseUrl": "https://id.atlassian.com/"

    },

    "Credentials": {

      "$id": "4",

      "$type": "SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account",

      "Username": "",

      "Email": null

    },

    "IsDefault": false

  }

]

SourceTree 

6、打开 %LocalAppData%\Atlassian,进入此文件夹“SourceTree.exe_Url_huc1rupbcnhgzurrlc3miu5teogqpjtd”(注该目录可能和版本相关,不同版本的路径可能不完全一样。),然后进入 3.3.8.3848 目录, 打开user.config在<SourceTree.Properties.Settings>标签内加入这几句话:

<setting name="AgreedToEULA" serializeAs="String">

    <value>True</value>

</setting>

<setting name="AgreedToEULAVersion" serializeAs="String">

    <value>20160201</value>

</setting>

整个user.config配置文档如下:

<?xml version="1.0" encoding="utf-8"?>

<configuration>

    <userSettings>

        <SourceTree.Properties.Settings>

           <setting name="AgreedToEULA" serializeAs="String">

              <value>True</value>

            </setting>

            <setting name="AgreedToEULAVersion" serializeAs="String">

            <value>20160201</value>

            </setting>

            <setting name="SSHClientType" serializeAs="String">

                <value>PuTTY</value>

            </setting>

            <setting name="ProxyServerMode" serializeAs="String">

                <value>OperatingSystem</value>

            </setting>

            <setting name="HgPostPullAction" serializeAs="String">

                <value>Update</value>

            </setting>

            <setting name="AnalyticsHasAgreed" serializeAs="String">

                <value>True</value>

            </setting>

        </SourceTree.Properties.Settings>

    </userSettings>

</configuration>

 SourceTree

7、 重新点击seourceTree.exe 安装, 弹框选择最后一项“我不想使用Mercurial”,安装即可完成安装即可

 SourceTree

 

 

 SourceTree

Sourcetree中集成Beyond Compare 4

    首先要在本地安装好比对工具:Beyond Compare 4。因为需要在sourceTree里配置的时候需对比命令和合并命令都需要选择Beyond Compare的安装目录下的 Bcomp.exe 文件。

配置SourceTree

首先打SourceTree->工具->选项->比较

 SourceTree

外部对比工具 :自定义

对比命令:选择BeyondCompare安装路径;

参数: \"$LOCAL\" \"$REMOTE\" (这里可以因人而异,每个人使用的都不一样)

合并工具 :自定义

合并命令:选择BeyondCompare安装路径

参数:\"$LOCAL\" \"$REMOTE\" \"$BASE\" -o \"$MERGED\"

(合并和对比不一样因为要核对之前的版本 还有自己的版本,他人的版本,这里我选择了四个参数)

 SourceTree

如何在项目中如何使用

先在代码历史轨迹图谱中选中某个提交版本号里的某个文件

 SourceTree

另外当SourceTree有冲突文件时,右键,解决冲突,使用外部比较工具就可以调起BeyondCompare了。

SourceTree使用
克隆项目代码

 SourceTree

SourceTree

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

1) 项目地址获取错误;

2) 没有项目访问权限;

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

 SourceTree

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

Git工作流

分支共有5种类型:

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

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

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

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

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

develop开发分支

SourceTree

直接点“确定”,获取develop开发分支源码,开发任务都是在develop分支上完成的。

SourceTree

feature功能分支

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

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

 SourceTree

选择“建立新的分支”:SourceTree

 SourceTree

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

 SourceTree

在F_add_feature功能分支下进行开发任务,并提交:

比如在本地仓库中分别增加了feature_1、feature_2、feature_3文件,共提交1次,现项目文件夹下共三个文件:

 SourceTree

SourceTree

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

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

 SourceTree

 

 SourceTree

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

 SourceTree

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

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

 SourceTree

feature_1在feature_1.txt下做如下操作:

 SourceTree

feature_2在feature_1.txt下做如下操作

 SourceTree

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

 SourceTree

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

 SourceTree

 

 打开feature_1.txt

SourceTree

出现<<<<<<< HEAD、=======、>>>>>>> feature/F_feature_2,HEAD和=号之间表示当前分支下的代码,=号和>>>>>>> feature/F_feature_2之间表示要合并的分支下的代码,>>>>>>> feature/F_feature_2表示了要合并的分支的分支名称,根据情况区分要保留的代码,要删除的代码,最后再删除<<<<<<< HEAD、=======、和>>>>>>> feature/F_feature_2

 SourceTree

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

 SourceTree

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

release发布测试版本分支

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

SourceTree

 

 SourceTree

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

 SourceTree

R_v1.0为阶段性发布版本,主要用于发布前进行测试,后续的开发工作仍旧在develop分支上进行,如果在测试过程中发现问题,直接在release分支上进行修改,修改完成后进行提交。对release分支R_v1.0进行两次修改后,测试完成,可以进行正式发布,在当前分支指向R_v1.0分支下,点击“Git工作流”,选择“完成发布版本”

 SourceTree

 

 SourceTree

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

 SourceTree

完成合并后,默认指向develop为当前分支,master增加多个版本更新,将master分支推送到origin,完成线上发布。比如说我的仓库douyini是在github上的,那么推送完毕后去查看远程服务器上的douyini仓库就同步更新了。

 SourceTree

Hotfix发布修复补丁版本分支

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

 SourceTree

 

 SourceTree

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

 SourceTree

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

 SourceTree

 

 SourceTree

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

 SourceTree

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

在完成发布版本和完成修复补丁时,如果遇到冲突,可仿照上述“feature功能分支”第5)点中进行冲突修改,再进行后续操作。

 

上一篇:Apache Dubbo编程指南系列之Dubbo-Admin安装和使用


下一篇:git分支