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
}
]
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>
7、 重新点击seourceTree.exe 安装, 弹框选择最后一项“我不想使用Mercurial”,安装即可完成安装即可
Sourcetree中集成Beyond Compare 4
首先要在本地安装好比对工具:Beyond Compare 4。因为需要在sourceTree里配置的时候需对比命令和合并命令都需要选择Beyond Compare的安装目录下的 Bcomp.exe 文件。
配置SourceTree
首先打SourceTree->工具->选项->比较
外部对比工具 :自定义
对比命令:选择BeyondCompare安装路径;
参数: \"$LOCAL\" \"$REMOTE\" (这里可以因人而异,每个人使用的都不一样)
合并工具 :自定义
合并命令:选择BeyondCompare安装路径
参数:\"$LOCAL\" \"$REMOTE\" \"$BASE\" -o \"$MERGED\"
(合并和对比不一样因为要核对之前的版本 还有自己的版本,他人的版本,这里我选择了四个参数)
如何在项目中如何使用
先在代码历史轨迹图谱中选中某个提交版本号里的某个文件
另外当SourceTree有冲突文件时,右键,解决冲突,使用外部比较工具就可以调起BeyondCompare了。
SourceTree使用
克隆项目代码
如果箭头指向的仓库类型表明“这不是一个标准的Git仓库”,可能是有以下原因:
1) 项目地址获取错误;
2) 没有项目访问权限;
点击“克隆”,等待项目克隆完成,完成后,左侧只有一个分支master
克隆完成后,得到的是发布后的master源码,如果想要获取最新的正在开发中的源码,需要对项目流进行初始化,点击“Git工作流”
Git工作流
分支共有5种类型:
1) master,最终发布版本,整个项目中有且只有一个
2) develop,项目的开发分支,原则上项目中有且只有一个
3) feature,功能分支,用于开发一个新的功能
4) release,预发布版本,介于develop和master之间的一个版本,主要用于测试
5) hotfix,修复补丁,用于修复master上的bug,直接作用于master
develop开发分支
直接点“确定”,获取develop开发分支源码,开发任务都是在develop分支上完成的。
feature功能分支
当开发中需要增加一个新的功能时,可新建feature分支,用于增加新功能,并且不影响开发中的develop源码,当新功能增加完成后,完成feature分支,将新功能合并到develop中,更新develop上的代码。
1) 新建feature。首先当前开发分支指向develop,点击“Git工作流”:
选择“建立新的分支”:
在预览中可看到,feature分支是从develop分出的,输入功能名称(比如:F_add_feature),点击确定,项目结构中增加feature分支,并且当前开发分支指向新建的feature分支。
在F_add_feature功能分支下进行开发任务,并提交:
比如在本地仓库中分别增加了feature_1、feature_2、feature_3文件,共提交1次,现项目文件夹下共三个文件:
当切换为develop分支后,会发现在develop下并没有新增的三个文件,说明在feature下进行操作,并不影响develop分支源码。
完成feature开发后,将feature中的源码合并到develop分支。将当前分支指向F_add_feature分支,点击“Git工作流”,选择“完成功能”
预览中,表明feature分支将合并到develop,点击确定,进行提交合并,合并成功后
1) 需要再增加新的功能时,重复以上操作即可。
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
release发布测试版本分支
当开发到一定阶段,可以发布测试版本时,可以从develop分支,建立release分支,进入预发布测试阶段。点击“Git工作流”,选择“建立新的发布版本”:
预览中可以看到,release是从develop分出的,输入发布版本名‘R_v1.0’,点击确定
R_v1.0为阶段性发布版本,主要用于发布前进行测试,后续的开发工作仍旧在develop分支上进行,如果在测试过程中发现问题,直接在release分支上进行修改,修改完成后进行提交。对release分支R_v1.0进行两次修改后,测试完成,可以进行正式发布,在当前分支指向R_v1.0分支下,点击“Git工作流”,选择“完成发布版本”
在预览中可以看到,R_v1.0向develop和master分别合并,点击确定,完成正式发布。
完成合并后,默认指向develop为当前分支,master增加多个版本更新,将master分支推送到origin,完成线上发布。比如说我的仓库douyini是在github上的,那么推送完毕后去查看远程服务器上的douyini仓库就同步更新了。
Hotfix发布修复补丁版本分支
正式版本发布后,develop可继续进行后续开发,当正式版本出现问题时,需要进行问题的修改,可以在master分支建立修复补丁hotfix。将当前分支切换到master,点击“Git工作流”,选择“建立新的修复补丁”
预览中hotfix分支是从master拉去出来的,输入修复补丁名,点确定
在该分支下进行master的问题修改,修改完成后进行提交。当所有补丁问题修改完成后,点击“Git工作流”,选择“完成修复补丁”
预览中,H_fix_1向master和develop分别合并,点击确定,完成分支合并。
合并完成后,默认当前分支为develop,master分支有版本需要更新,当前分支切换为master,进行推送,完成补丁修复。
在完成发布版本和完成修复补丁时,如果遇到冲突,可仿照上述“feature功能分支”第5)点中进行冲突修改,再进行后续操作。