[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

软件安装

  1. 跳过登录

../../_images/no_SSH.png

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

../../_images/re2.png

  1. 添加本地账号

  2. 添加密钥(可先不创建)

image

Git 账户

进入客户端后可选择左上方任务栏 工具=>选项

  • 在”一般”中:可设置用户信息,SSH等

  • 在”验证”中:设置存储的远程仓库账号

初始化

克隆远程仓库时有两种方式,因而有两种初始化如下

  1. SSH协议关联远程仓库的初始化

  • 点击客户端左上方任务栏工具=>选项

  • 先SSH客户端选择OpenSSH,然后添加SSH密钥位置,一般在C:\Users\XXXXXXX\ .ssh内

../../_images/add_SSH.png

  1. HTTP协议直接输入账户密码关联远程仓库的初始化

  • 前往本地控制面板,搜索凭据管理器

  • 选择Windows凭据,添加普通凭据,之后输入gitlab网站,填写账号密码(注意内网的加上 .ag )

../../_images/windows_credential.png

  • 由于内网的特殊,剩下步骤与下面HTTP协议克隆远程仓库放在一起

导入本地已有仓库

如下图,点击”+”,选择”Add”,再加入本地仓库地址,添加即可(注意不是.git)

../../_images/add_local.png

克隆远程仓库

两种方式,如下

  1. SSH协议关联远程仓库

  • 选择”clone”

  • 输入远程仓库的SSH地址(注意前提是远程仓库已添加本地电脑的密钥)

  • 设置存放的本地地址

  • 设置顶部标签tab

  • 选择克隆的分支(克隆深度:对于大项目,提交信息量巨大,可选择深度减少克隆负担,默认0)

  • 最后克隆即可

../../_images/SHH_clone.png

  1. HTTP协议直接输入账户密码关联远程仓库

  • 类似SSH克隆

  • 输入远程仓库的HTTP地址

../../_images/HTTP_clone.png

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

../../_images/sourcetree_credential.png

初始化本地仓库

  1. 选择”create”,创建

../../_images/create_local.png

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

../../_images/create_remote.png

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

../../_images/warehouse_set.png

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

../../_images/add_remote.png

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

../../_images/pull_get.png

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

../../_images/get_remote.png

完成!

提交

跟踪文件

  1. 跟踪:在用SourceTree进行项目跟踪时,它是以文件夹形式跟踪文件夹下所有的文件。自动进行。

  2. 忽略跟踪:点击客户端左上方任务栏 仓库=>仓库设置=>高级,在仓库指定忽略列表中,编辑.gitignore文件,在其中加入需要忽略跟踪的文件/文件夹即可,也能设置规则忽略相应文件/文件夹。

../../_images/ignore.png

填写提交信息

实例

在本地仓库文件夹中添加了一个文件(可通过客户端右上角的资源管理器直接打开本地仓库文件夹

../../_images/open_local_doc.png

  1. 查看

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

../../_images/workspace_doc.png

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

../../_images/look_format.png

  1. 暂存

  • 如下图

../../_images/storage.png

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

../../_images/see_diff.png

  1. 提交

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

../../_images/submit.png

推送提交

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

../../_images/push.png

../../_images/push_create.png

  • 推送成功可点击客户端右上方的”远端”,直接进入远端仓库进行查看

提交约束

  • 提交信息规范较多,在./Commit.md文件中。

  • 辅助填写工具研究中。

分支管理

创建本地新分支

  • 点击左上方”分支”创建本地新分支。

../../_images/get_branch.png

拉取远程分支并创建本地分支

  1. 远程仓库创建一个新的分支。

../../_images/remote_cre_bra.png

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

../../_images/get_new_branch.png

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

../../_images/remote_in_branch.png

  1. 成功后左侧本地栏显示

../../_images/get_remote_sus.png

切换分支

  • 双击需要切换的分支即可。

删除分支

  1. 本地分支删除

  • 在左侧本地中右击选中分支,选择删除。

../../_images/delete.png

  1. 远端分支删除

  • 同理,在左侧远端中右击选中分支,选择删除。

推送

将本地开发分支推送到远程仓库

  • 点击左上角”推送”,勾选需要推送的本地分支即可。

../../_images/push_branch.png

合并

将远程分支合并到本地分支

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

../../_images/pull_branch.png

将开发分支移动到主分支

  • 先切换到主分支(等待被其他分支合并)

  • 点击左上角”合并”,选择需要合并的提交分支,确认即可。

../../_images/merge.png

  • 合并成功。

../../_images/merge_sus.png

冲突解决

冲突情况:

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

../../_images/conflict.png

../../_images/conflict_warm.png

冲突解决:

三种方式

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

../../_images/conflict_s.png

  1. 外部文本对比工具Beyond Compare(收费)

  2. 直接打开冲突文件手动解决冲突

  • 根据项目需求删除,保留,修改代码就行了。(注意,在项目最后这些符号: <<<<<<<HEAD=======  >>>>>>>(一长串) 都不能存在,否则报错)

  • 最后选中冲突文件,再选择左上角菜单栏中的操作->解决冲突,将冲突文件标记为已解决即可。

  1. 使用”我的”或者”他人的版本解决”

  • (我这选择的是 “使用我的版本解决冲突”,因而to_conflict应当是main版本的。push到仓库后验证如下图)

../../_images/conflict_main.png