首页 > 其他分享 >SourceTree使用教程_network

SourceTree使用教程_network

时间:2023-12-24 09:22:06浏览次数:41  
标签:教程 develop network 仓库 点击 本地 推送 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

标签:教程,develop,network,仓库,点击,本地,推送,SourceTree,分支
From: https://www.cnblogs.com/DQ-MINE/p/17924040.html

相关文章

  • 【Spring教程28】Spring框架实战:从零开始学习SpringMVC 之 请求与请求参数详解
    目录1设置请求映射路径1.1环境准备1.2问题分析1.3设置映射路径2请求参数2.1环境准备2.2参数传递2.2.1GET发送单个参数2.2.2GET发送多个参数2.2.3GET请求中文乱码2.2.4POST发送参数2.2.5POST请求中文乱码欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例......
  • 无涯教程-PL/SQL - GOTO函数
    PL/SQL编程语言中的GOTO语句提供了从GOTO到同一子程序中带标签的语句的无条件跳转。注意-在任何编程语言中均不建议使用GOTO语句,因为它会使跟踪程序的控制流变得困难,从而使程序难以理解且难以修改。GOTO-语法PL/SQL中的GOTO语句的语法如下-GOTOlabel;....<<label>>......
  • 无涯教程-PostgreSQL - 环境设置
    要开始了解PostgreSQL基础,首先让无涯教程安装PostgreSQL,本章说明有关在Linux,Windows和MacOS平台上安装PostgreSQL的信息。在Linux/Unix上安装请按照给定的步骤在Linux机器上安装PostgreSQL,在继续安装之前,请确保您以root身份登录。从中选择所需的PostgreSQL版本号,并尽可能精......
  • 无涯教程-PL/SQL - CONTINUE函数
    CONTINUE语句会强制执行循环的下一次迭代,从而跳过两者之间的任何代码。CONTINUE-语法CONTINUE语句的语法如下-CONTINUE;CONTINUE-流程图CONTINUE-示例DECLAREanumber(2):=10;BEGIN--whileloopexecutionWHILEa<20LOOPdbms_outp......
  • 无涯教程-PL/SQL - EXIT函数
    PL/SQL编程语言中的EXIT语句具有以下两种用法-在循环内遇到EXIT语句时,循环立即终止,程序控制在循环后的下一条语句处恢复。如果您使用的是嵌套循环,则EXIT语句将停止执行最里面的循环,并开始执行该块之后的下一行代码。EXIT-语法PL/SQL中EXIT语句的语法如下-EXIT;EXIT-......
  • 无涯教程-PL/SQL - 嵌套循环函数
    PL/SQL允许在另一个循环中使用一个循环,以下部分显示了一些示例来说明这一概念。PL/SQL中嵌套的基本LOOP语句的语法如下-LOOPSequenceofstatements1LOOPSequenceofstatements2ENDLOOP;ENDLOOP;PL/SQL中嵌套的FORLOOP语句的语法如下-FORcount......
  • 无涯教程-PL/SQL - FOR函数
    FORLOOP是一种重复控制结构,可让您有效地编写需要执行特定次数的循环。FORLOOP-语法FORcounterINinitial_value..final_valueLOOPsequence_of_statements;ENDLOOP;FORLOOP-示例DECLAREanumber(2);BEGINFORain10..20LOOPdbm......
  • 无涯教程-PL/SQL - WHILE函数
    只要给定条件为真,PL/SQL编程语言中的WHILELOOP语句就会重复执行目标语句。WHILELOOP-语法WHILEconditionLOOPsequence_of_statementsENDLOOP;WHILELOOP-示例DECLAREanumber(2):=10;BEGINWHILEa<20LOOPdbms_output.put_line('......
  • Java语言学习第一步:JDK下载与安装教程(超详细)
    一、简介JRE(JavaRuntimeEnvironment)Java程序运行时的环境,包含JVM和运行时所需的核心类库。若想运行一个已有的Java程序,只需要安装JRE即可。JDK(JavaDevelopmentKit)Java程序开发工具包,包含JRE和开发人员使用的工具。其中的开发工具:编译工具(javac.exe)和运行工具(java.exe......
  • Python下载与安装教程(很详细)
    前言一、打开python官网点击下载打开官网,进入页面后点击导航中的Downloads进入下载页面二、选择要下载的python版本最新版本的python不能在Windows7的电脑上使用,如果你的系统是win10及以上可以直接下载3.10.x的版本,如果你系统是win7请往下拉在Lookingfor…里找到python3.8......