[toc]
SourceTree 操作指南(Windows)
本文以SourceTree 为例介绍 Git 版本管理图形化操作的方法。(Windows版)
准备工作
安装包存放地址:\10.1.135.8\导远内网文件服务器\光电产品\B1(R外网到内网)\99-其他\MHH\SourceTree
SourceTree介绍参考:https://www.cnblogs.com/Can-daydayup/p/13128633.html
软件安装
跳过登录

去掉第二个,不选(类似git的一个程序)

添加本地账号
添加密钥(可先不创建)

Git 账户
进入客户端后可选择左上方任务栏 工具=>选项
在”一般”中:可设置用户信息,SSH等
在”验证”中:设置存储的远程仓库账号
初始化
克隆远程仓库时有两种方式,因而有两种初始化如下
SSH协议关联远程仓库的初始化
点击客户端左上方任务栏工具=>选项
先SSH客户端选择OpenSSH,然后添加SSH密钥位置,一般在C:\Users\XXXXXXX\ .ssh内

HTTP协议直接输入账户密码关联远程仓库的初始化
前往本地控制面板,搜索凭据管理器
选择Windows凭据,添加普通凭据,之后输入gitlab网站,填写账号密码(注意内网的加上 .ag )

由于内网的特殊,剩下步骤与下面HTTP协议克隆远程仓库放在一起
导入本地已有仓库
如下图,点击”+”,选择”Add”,再加入本地仓库地址,添加即可(注意不是.git)

克隆远程仓库
两种方式,如下
SSH协议关联远程仓库
选择”clone”
输入远程仓库的SSH地址(注意前提是远程仓库已添加本地电脑的密钥)
设置存放的本地地址
设置顶部标签tab
选择克隆的分支(克隆深度:对于大项目,提交信息量巨大,可选择深度减少克隆负担,默认0)
最后克隆即可

HTTP协议直接输入账户密码关联远程仓库
类似SSH克隆
输入远程仓库的HTTP地址

若HTTP协议直接输入账户密码关联远程仓库的初始化未完成,会弹出下图,已添加普通凭据后在管理器中输入账号密码即可

初始化本地仓库
选择”create”,创建

创建完成本地仓库后,需要连接远程仓库进行管理,可创建个远程仓库,获取其URL

点击客户端左上方任务栏 仓库=>仓库设置

在仓库设置中添加需要连接的远程仓库,填写远端名称与URL后确认,再在仓库设置中选择该远端即可

设置完远端后,应当先”获取””拉取”,再进行之后的提交操作,否则还要关联master。

具体操作:(为方便可先行在远端中创建个文件,便于显示main分支)先双击右侧远端的main分支=>检出确认,获取后再进行拉取即可。(可看下面的介绍)

完成!
提交
跟踪文件
跟踪:在用SourceTree进行项目跟踪时,它是以文件夹形式跟踪文件夹下所有的文件。自动进行。
忽略跟踪:点击客户端左上方任务栏 仓库=>仓库设置=>高级,在仓库指定忽略列表中,编辑.gitignore文件,在其中加入需要忽略跟踪的文件/文件夹即可,也能设置规则忽略相应文件/文件夹。

填写提交信息
实例:
在本地仓库文件夹中添加了一个文件(可通过客户端右上角的资源管理器直接打开本地仓库文件夹)

查看
客户端会自动检测,并在下方的显示”未暂存文件”,也可通过左上方workspace中的”文件状态”查看

可点击”已暂存文件”上方的查看方式进行修改平面列表或树状图示等

暂存
如下图

当暂存后又对该文件进行了修改,可进入workspace中的”文件状态”,选中”未暂存文件”中该文件,便可在右侧查看修改变化

提交
进入workspace中的”文件状态”最下方,填写提交信息,点击提交即可。(对于提交信息规范,请看下面”提交约束”)

推送提交
提交之后在右上方”推送”会有提交文件数量提示,点击,并选择推送的分支,确认即可。


推送成功可点击客户端右上方的”远端”,直接进入远端仓库进行查看
提交约束
提交信息规范较多,在./Commit.md文件中。
辅助填写工具研究中。
分支管理
创建本地新分支
点击左上方”分支”创建本地新分支。

拉取远程分支并创建本地分支
远程仓库创建一个新的分支。

左上方,先”获取”,再”拉取”到本地。

左侧,选择远端需要检出,创建到本地的分支,双击。

成功后左侧本地栏显示

切换分支
双击需要切换的分支即可。
删除分支
本地分支删除
在左侧本地中右击选中分支,选择删除。

远端分支删除
同理,在左侧远端中右击选中分支,选择删除。
推送
将本地开发分支推送到远程仓库
点击左上角”推送”,勾选需要推送的本地分支即可。

合并
将远程分支合并到本地分支
先切换到需要合并的本地分支,点击左上角”拉取”,选择需要远端分支,确认即可

将开发分支移动到主分支
先切换到主分支(等待被其他分支合并)
点击左上角”合并”,选择需要合并的提交分支,确认即可。

合并成功。

冲突解决
冲突情况:
develop分支出来的to_conflict文件修改后,原本main分支已对to_conflict进行再次修改。因而二者合并时,to_conflict文件冲突,引起合并冲突。如下图


冲突解决:
三种方式
先选择下方的的冲突文件,查看其比较。选择左上角菜单栏中的操作->解决冲突。如下图

外部文本对比工具Beyond Compare(收费)
直接打开冲突文件手动解决冲突
根据项目需求删除,保留,修改代码就行了。(注意,在项目最后这些符号:
<<<<<<<HEAD======= >>>>>>>(一长串) 都不能存在,否则报错)最后选中冲突文件,再选择左上角菜单栏中的操作->解决冲突,将冲突文件标记为已解决即可。
使用”我的”或者”他人的版本解决”
(我这选择的是 “使用我的版本解决冲突”,因而to_conflict应当是main版本的。push到仓库后验证如下图)
