一、简介:
一个用于Windows和Mac的免费Git客户端。
Sourcetree简化了如何与Git存储库进行交互,这样您就可以集中精力编写代码。通过Sourcetree的简单Git GUI可视化和管理存储库。
官网下载地址:Sourcetree | Free Git GUI for Mac and Windows
本文介绍的版本为sourcetree 2.5.5;
二、使用方法[3.4.1不需要以下步骤]
- 安装
下载完成后,在安装SourceTree的过程中,需要通过账户登录,但注册或登录界面可能根本无法打开,导致软件无法正常安装。
解决方法:
(1)、 在目录C:\Users\{youruser}\AppData\Local\Atlassian\SourceTree
下创建文件accounts.json ,注意:{youruser}需要替换为登录系统用户名。如我的电脑路径为:
C:\Users\Administrator\AppData\Local\Atlassian\SourceTree
。写入如下内容:
[
{
"$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 protected]"
},
"IsDefault": false
}
]
(2)、编辑文件C:\Users\当前用户文件夹\AppData\Local\Atlassian\SourceTree.exe_Url_2pp5ph5o52ezn1jhauso0c3bpdeplqgk\3.1.3.3158\user.config,configuration userSettings SourceTree.Properties.Settings
之下添加以下 6 行内容:
True
20160201
(3)、重新启动软件,顺利进入界面,如图:
- 拉取代码
sourcetree是免费的Git客户端,如何利用它从gitlab上拉取下代码呢?步骤如下:
(1)、下载并安装git;
(2)、运行git,生成秘钥,
命令为:ssh-keygen -t rsa,如图:
秘钥生成的目录在你系统盘用户目录下的.ssh\id_rsa.pub
(3)、在自己的git服务器上绑定自己git公钥;
(绑定操作:Settings --> SSH Keys --> Add key(打开本地公钥文件粘贴里面所有内容),如图:
(4)、利用sourcetree拉取代码。
点击"工具-->选项-->一般",注意以下4个部分的设置,如图:
点击确定按钮之后,点击"文件-->克隆/新建",打开克隆tab,如图:
源路径:为要拉取项目的git路径;目标路径:为自己要存放该项目的本地资源路径;名字:为项目名字,一般会自动获取填充。
点击克隆按钮,项目开始拉取到本地。等待项目拉取完毕后,我们就可以开始自己的本地开发。
- 上传代码;
项目克隆完成之后,我们拉取的是master分支上的代码,由于master分支是主分支,项目多人开发的情况下,很容易造成冲突。
所以我们一般会在gitlab远程新建一个自己的分支,如命名为:dev。
(1)、新建自己的远程开发分支并在sourcetree中切换到该分支;如图:
双击origin--->dev,就可以切换到dev开发分支。
(2)、切换到文件状态,暂存需要提交的代码,写好描述,点击“拉取”选项(相当svn的update操作)更新代码并点击提交;
(3)、点击“推送”选项,选择正确的本地和远程分支,确定推送(相当于svn的commit操作)。
(4)、等待项目管理员将dev分支代码合并到master分支,完成从开发到上传。
- 其他主要功能介绍
4.1、Git工作流详细介绍
4.2、配置忽略文件;
利用.gitignore过滤文件,如编译过程中的中间文件,等等,这些文件不需要被追踪管理。 正常情况下,管理员创建项目后需要直接将忽略文件创建好。
使用sourcetree添加忽略文件的方法,如图:
忽略文件中有 忽略文件夹和单个文件,如图:
4.3、分支管理和使用
点击“分支”选项,切换到“新分支”选项。
1、可以在当前的版本下创建分支
2、选择指定的提交创建分支
3、点击“创建分支”
如图:
分支提交到服务器。
定位到需要提交的分支上,点击“推送”选项,选择正确的分支,确定后完成推送。如图:
4.4、解决冲突
多人开发时,由于修改了同一个文件,可能会有文件冲突的情况。
拉取代码时,会有冲突提示,解决完相关的冲突文件,重新提交即可。
- 相关提示信息含义及小窍门
5.1、冲突信息 ,如图:
5.2、先更新信息
5.3、小窍门: 先拉取后推送。
如果推送时,拉取右上方显示数字,则需要先拉取再推送。
- SourceTree&Git部分名词解释
- 克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库
- 提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓库做修改后一般都得先提交一次,再推送)
- 检出(checkout):切换不同分支
- 添加(add):添加文件到缓存区
- 移除(remove):移除文件至缓存区
- 暂存(git stash):保存工作现场
- 重置(reset):回到最近添加(add)/提交(commit)状态
- 合并(merge):将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消
- 抓取(fetch):从远程仓库获取信息并同步至本地仓库
- 拉取(pull):从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 pull=fetch+merge
- 推送(push):将本地仓库同步至远程仓库,一般推送(push)前先拉取(pull)一次,确保一致
- 分支(branch):创建/修改/删除分枝
- 标签(tag):给项目增添标签
- 工作流(Git Flow):团队工作时,每个人创建属于自己的分枝(branch),确定无误后提交到master分枝
- 终端(terminal):可以输入git命令行