SourceTree使用教程

SourceTree使用教程

1.克隆、提交、推送

​ 在使用SourceTree之前必须要先安装Git和sourceTree,具体安装过程不再赘述

(1)以加入我的管理团队为例,进入5-27-dq 这个仓库,点击管理,然后进入仓库成员管理,发现现在我的仓库成员有4个了,gitee免费版最多可5个成员。

image-20230529162517651

​ 若要加入我的代码仓,请向我申请邀请链接。

image-20230529162537383

(2)加入我的代码仓,成为的的项目开发成员之后,大家首先将该远程仓clone到自己本地,作为自己的本地仓。

​ 值得注意的是,5-27-dq这个仓库有两个分支,大家选着dev开发分支进行远程提交,master作为最终发布使用

image-20230529163412238

(3)打开Sourcetree,单击clone,填写远程仓库的url:https://gitee.com/su-deqi/5-27-dq.git ,以及想要克隆到本地的文件夹地址,作为自己的本地仓,对本地仓进行管理。

image-20230529163556575

​ 等待一会之后,就可以在Sourcetree中看到已经成功将远程的5-27-dq仓库克隆下来了,Sourectree页面可以看到该仓的整个生命进程,包括团队成员的提交历史,每个提交节点都可以查询提交的文件内容。

image-20230529164128212

​ 回到自己的本地仓库,就可以看到一个带.git 的与gitee云端仓库一样的本地文件夹了,该文件夹就是自己的本地仓。

image-20230529164516259

(4)add-->commit-->push文件到远程仓库。在该文件夹下新建一个名叫 dog.txt的文本文件为例。

image-20230529164919220

​ 新建完成之后,我们回到Sourcetree,点击WORKSPACE工作区,查看文件状态,发现未暂存区有一个dog.txt 的文件,即刚才我们新建的那个文件。然后暂存所有(add命令),提交到暂存区。

image-20230529165036156

​ 然后填写commit备注信息,点击提交到版本库中。

image-20230529165445521

​ 提交完成之后,更新到以下界面,在推送上面显示“1”,即有一个新文件要提交。在其他区域我们可以清晰的看到该文件提交过程中的所有信息。

image-20230529170045306

​ 点击推送,在新页面中,选择推送路线,即将自己本地的文件分支(一般为master),推送选择推送到dev开发分支。

image-20230529170444911

(5)推送成功之后,我们登录gitee远程仓库查看一下。发现一个名叫dog.txt的文件成功推送过来了。

image-20230529171704802 image-20230529171739371

2.拉取和获取

(1)打开gitee上的5-27-dq仓库,编辑dog.txt文件,并在文件中增加一行 dog2 hello,如下图,提交如下图

image-20230529172531605

(2)获取和拉取。获取是将远程仓库的代码更新到本地仓库,拉取是将本地仓库的代码更新到本地工作副本。打开sourceTree,点击 获取 按钮,如下图

image-20230529172740250

(4)点击确定,可以看到拉取图标那里多了一个蓝底白色的数字1,分支master那里也有一个灰色的数字1,并有一个向下的箭头,这表示 有一个更新需要 拉取到本地工作副本。

image-20230529172911784

​ 同时打开版本文件,可以看到dog.txt文件中并没有第二步增加的 dog2 hello。

image-20230529173027512

(5)点击拉取,如下图

image-20230529173136598

(6)点击确定,可以看到待拉取的图标消失了。同时本地的dog.txt文件也多了 dog2 hello

image-20230529173215862

image-20230529173312085

(7)一般在实际使用中是不会先点获取,再点拉取的,因为拉代码都是直接一步到位为拉到本地工作副本的。所以直接一个拉取操作就够了。

3.分支创建与合并

(1)分支。当要新增一个功能,又要保证原始功能的正常的使用,这个时候为了不影响原功能的使用,就可以建立一个分支,在分支上进行新增功能的开发,等到新增的功能测试通过后再把分支合并到主干上。如下图,点击分支,输入新分支名字,以当前工作副本为基础生成一个新的develop分支。

image-20230529173930838

(2)点击创建分支,可以看到多了一个develop分支,但是这个分支只存在于本地仓库。可以看到最新的日志记录节点上只有master,origin/master,develop,所以这个新分支是没有推送到远程仓库的。

image-20230529174024895

(3)点击推送,如下图,勾选第一个,将本地develop分支推送到远程develop分支

image-20230529174203219

(4)点击推送 ,如下图,可以看到本地develop和远程develop已经同步了。

image-20230529174446138

(5)在develop分支上新增功能,这里是新增了 add func1

image-20230529174634079

(6)在sourceTree界面,推送新增的功能到develop分支

image-20230529174815611

(7)如下图。可以看到develop分支比master分支多了1条提交记录。

image-20230529175131567

(8)功能1和2测试通过,现在要将develop分支上新增的两个功能合并到主分支master上。

将当前分支切换到master分支,鼠标移到到develop分支,右键,选择合并develop至当前分支,也即是主分支。

image-20230529175254889

(9)点击确定

image-20230529175344819

(10)可以看到master的本地仓库多了1条需要推送的记录。如图所示的红框内图标1,说明develop分支新增的1个功能已合并到本地仓库的master分支。

image-20230529175442083 image-20230529175924571

(11)推送合并过来的1个新增功能。可以看到master分支已有了新增的1个功能。

image-20230529180042542

​ 在gitee仓库中我们也能看到推送过来的develop开发分支。

image-20230529180121173

4.冲突解决

​ 虽然在团队协作开发中强调尽量避免操作同一文件,以避免冲突,但是在实际开发中还是会遇到冲突,所以掌握解决冲突的方法必不可少。

(1)解决冲突就要先制造冲突,冲突一般是由于两个人同时修改同一文件而造成的。在gitee上修改远程仓库文件模拟一个人操作,sourceTree本地修改同一文件模拟另一个人操作。

(2)登录Gitee ,打开我的仓库,编辑dq.txt文件

image-20230529153304685

(3)在文件末尾增加内容 dq本地 ,点击提交,如下图所示。

image-20230529153338331 image-20230529153442369

(4)打开本地工作副本的dq.txt文件,新增内容 dq本地,并保存,如下图:

image-20230529153608364

(5)打开sourceTree,可以看到本地工作副本有个待提交记录,然后add-->commit,提交到版本库。

image-20230529153745666 image-20230529153933419

(6)推送代码。这个时候你修改完了本地的功能,并不知道远程仓库上也有人提交了该文件的修改。

image-20230529154050033

​ 直接推送本地修改,推送本地工作副本到远程仓库,运行完成后会报错,大概是提示本地仓库和远程仓库版本不一致,无法提交,但是本地工作副本的修改却是已经提交到了本地仓库。如下图。

image-20230529154217179

​ 然后关闭这个页面。

image-20230529154440539

(7)既然提示 和远程仓库版本不一致,无法推送,那只能先拉成一致了。点击拉取图标,等执行完,就会出现下图所示。

image-20230529154731471

​ 有一个待拉取的图标和一个待推送的图标,并且dq.txt文件的图标变成了黄色的感叹号。这个时候文件的冲突就造成了。

image-20230529154957494

(8)冲突文件会把两者的修改以冲突的方式合在一个文件里,等待使用者去处理。那么基本的处理思想是:要么使用其中某一个人的,要么使用两者的组合。

​ 冲突的解决需要一个外部代码对比工具,我这里使用的是Beyond Compare 4,下载安装,然后集成到sourceTree软件中。如下图。在外部对比工具中找到Beyond Compare 4的可执行程序,点击确定。

image-20230529155312131

(9)下面开始使用代码对比工具解决冲突,选中待解决冲突的代码,右键 解决冲突,打开外部合并工具。

image-20230529155533918

(10)等待一会,Beyond Compare 4就会被打开。

image-20230529155707731

第一块是本地修改的版本,第二块是冲突两者(本地仓库和远程仓库)相同的版本基准,第三块是 远程仓库的修改,第四块是冲突处理后的代码

image-20230529160147848

​ 11 本次解决冲突是为了合并两者的修改,所以我会把第一块和第三块所做的修改按照正确的逻辑顺序,合到第四块。在第4部分,可以点击不同箭头选择以哪个版本为基础,或者右键-->重新编辑。

image-20230529160255876 image-20230529160517325

​ 如下图,点击保存。关闭该对比软件。

image-20230529160601147

(12)切到sourceTree界面,点击dq.txt文件,发现冲突根据刚才和编辑修改完成了。

image-20230529160838000

​ 在未编辑区内,可以看到多了一个解决冲突的中间文件,由于冲突已解决,直接右键移除。

image-20230529161050315 image-20230529161130495

​ 点击确定移除。

(13)可以看到冲突已解决,代码已正确合并。然后commit-->push,推送该合并。

image-20230529161319560 image-20230529161440151 image-20230529161541681

(14)这样冲突就被解决了,可以看到本地工作副本和远程仓库的代码都是一致的了。

image-20230529161702056
posted @ 2023-12-24 09:18  德琪  阅读(391)  评论(0编辑  收藏  举报