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

SourceTree使用教程

时间:2023-05-29 18:11:05浏览次数:64  
标签:教程 develop 仓库 点击 本地 使用 推送 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,仓库,点击,本地,使用,推送,SourceTree,分支
From: https://www.cnblogs.com/DQ-MINE/p/17441275.html

相关文章

  • 拼多多获取整站实时商品详情数据|商品标题|商品链接,数据采集,数据分析提取教程
    ​ 拼多多是一个基于社交电商的购物平台,它通过通过价格和优惠吸引大量用户,使用户形成消费场景和消费共同体,最终实现规模效应。在拼多多运营中,API接口起到了重要的作用,它可以实现不同系统之间的信息共享和数据传递,从而提高了网站的效率和数据整合性,助力拼多多的快速发展。对于热......
  • vue-cli 的配置和使用
    vue-cli介绍vue-cli是Vue.js开发的标准工具。它简化了程序员基于webpack创建工程化的Vue项目的过程。中文官网在工程化的项目中,vue要做的事情很单纯:通过main.js把App.vue渲染到index.html的指定区域中。配置和使用Vue-CLI的安装、使用及环境配置(超详细)vue项......
  • Java学习必备截图工具Snipaste下载使用教程
    截图功能已经成了现在学习及工作中的必备需求,分享给大家一款好用而且还免费的截图神器——SnipasteSnipaste功能非常强大,不需要安装,解压即可使用。这篇文章详细介绍一下Snipaste的下载安装及使用。这也是入门学习Java最实用的截图工具,也可直接观看视频讲解,b站上动力节点老杜最......
  • EBS: FORM窗体开发使用VIEW模式开发,plsql DEVELOPER 自动生成PLSQL脚本
    FORM窗体开发使用VIEW模式开发,plsqlDEVELOPER自动生成PLSQL脚本,CREATEORREPLACEPACKAGEAPPS.HAND_PLSQL_AUTOCREATEAUTHIDCURRENT_USERAS/*$Header:HDPLSATC.pls115.12004/09/0215:33:09pkmship$*/PROCEDUREregist_table(p_table_nameINVARCHAR2,......
  • Apache Flume教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介Flume是Apache下面的一个分布式组件,它提供高效,可靠的收集,整合,传输日志数据的服务。Flume可以理解成一个管道,它连接数据的生产者和消费者,它从数据的生产者(Source)获取数据,保存在自己的缓存(Channel)中,然后通过Sink发送到消费者。它不对数据做保存和复杂的处理(可以做简单......
  • scrapy+scrapyd+scrapydweb的使用(采取一个案例演示)
    前期准备--创建一个scrapy爬虫(以上海热线-热点新闻为例:https://hot.online.sh.cn/node/node_65634.htm)1.安装scrapy,scrapyd,scrapydwebpipinstallscrapypipinstallscrapydpipinstallscrapyd-clientpipinstallscrapydweb2.创建工程scrapystartprojectnewsspider3.创建n......
  • python使用hTTP方法
    Python中可以使用requests库来发送HTTP请求,其中包括GET、POST、PUT、DELETE等方法。下面是一个使用requests库发送HTTP请求的示例:importrequests#发送GET请求response=requests.get('ExampleDomain')#发送POST请求data={'key1':'value1','key2':'val......
  • EasyDSS使用OBS推流成功,但不显示播放按钮是什么原因?
    EasyDSS支持一站式的上传、转码、直播、回放、嵌入、分享功能,具有多屏播放、自由组合、接口丰富等特点。平台可以为用户提供专业、稳定的直播推流、转码、分发和播放服务,全面满足超低延迟、超高画质、超大并发访问量的要求。有用户反馈,使用OBS工具推流到EasyDSS直播间,在录像回看中......
  • EasyCVR视频融合平台设备分组共享功能的使用介绍
    EasyCVR视频融合平台基于云边端一体化架构,具有强大的数据接入、处理及分发能力,平台支持海量视频汇聚管理,可支持多协议、多类型的设备接入,并能对设备进行分级、分组管理,并支持权限、角色分配,属于功能全面、性能稳定、高可靠、高可用的流媒体视频云服务平台。很多用户都使用过平台......
  • 转载-奇小葩- linux性能工具--ftrace使用
    原文链接:https://blog.csdn.net/u012489236/article/details/119519361 Ftrace设计作为一个内部的tracer提供给系统的开发者和设计者,帮助他们弄清kernel正在发生的行为,它能够调式分析延迟和性能问题。对于前一章节,我们学习了Ftrace发展到现在已经不仅仅是作为一个functiontr......