sourceTree使用教程详解

2023-05-16

 SourceTree是最好用的版本管理客户端软件,没有之一。本人将以连载经验的形式来详细讲述如何利用sourceTree去进行代码或文件的版本管理。教程一将讲述 克隆,提交,和推送。

一 SourceTree下载 安装

工具/原料

  • SourceTree下载 链接:https://pan.baidu.com/s/1W5rkiXF4DKBvUMGl5Gw5Lw 密码:djmg

方法/步骤

  1.  

    在使用SourceTree之前必须要先安装Git和sourceTree,具体安装过程不再赘述,大家可以搜索其它教程。

    SourceTree使用教程(一)

  2.  

    注册并登陆Github,点击new repository,如下图

    SourceTree使用教程(一)

  3.  

    输入仓库名字,点击创建,创建后的仓库是空白的,如下图

    SourceTree使用教程(一)

    SourceTree使用教程(一)

  4.  

    复制仓库地址,如下图。

    SourceTree使用教程(一)

  5. 打开sourcetree,点击clone,如下图

    SourceTree使用教程(一)

  6. 切换到克隆配置页面,填入远程仓库地址,目标路径(本地存放路径),点击克隆。

    SourceTree使用教程(一)

  7. 打开目标路径,可以看到已克隆一个空白的版本库。

    SourceTree使用教程(一)

  8. 在目标路径下新增文件test1.txt

    SourceTree使用教程(一)

  9.  提交和推送。由于git是分布式版本控制工具,存在着本地仓库和远程仓库,所以我们在本地工作副本进行的编辑,要先提交到本地仓库,再从本地仓库推送到远程仓库。下面进行演示。第7步中编辑完成后,打开sourceTree, 可以看到文件的变动已经显示到软件界面,点击暂存所选,类似于勾选要提交的文件。

    SourceTree使用教程(一)

  10. 输入提交注释 [A]新增1,点击提交。

    SourceTree使用教程(一)

  11. 提交完成后,可以看到日志/历史选项卡中已显示提交的版本日志,在master分支 提交了新增1,不过这个master分支是本地仓库的,并不是远程仓库的。从第二张图可以看到远程仓库github里还是空白的。

    SourceTree使用教程(一)

    SourceTree使用教程(一)

  12. 推送。点击推送,勾选将本地master分支推送到远程master分支,点击推送。

    SourceTree使用教程(一)

    SourceTree使用教程(一)

  13. 推送完成后,可以看到最新的版本里显示了master 和 origin/master,这表明本地master分支和远程master分支是同步的,在一个节点上。登录GitHub可以看到仓库里已有提交记录了。如下图。这样本地修改的代码或文件就被同步到了远程仓库,可以被别人拉下来使用。

    SourceTree使用教程(一)

    SourceTree使用教程(一)

 

二 sourceTree中拉取和获取的区别,以及在现实使用中如何去操作。

1 打开github上的GitTest版本库,编辑test1.txt文件,如下图。

 

sourceTree使用教程(二)

 

2 在文件test1.txt增加一行,如下图,提交。

 

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

 

sourceTree使用教程(二)

4 点击确定,可以看到拉取图标那里多了一个蓝底白色的数字1,分支master那里也有一个灰色的数字1,并有一个向下的箭头,这表示 有一个更新需要拉取到本地工作副本。同时打开版本文件,可以看到test1.txt文件中没有第二步增加的123。

 

sourceTree使用教程(二)

sourceTree使用教程(二)

5 点击拉取,如下图

 

sourceTree使用教程(二)


6 点击确定,可以看到待拉取的图标消失了。同时test1.txt文件也多了123

 

sourceTree使用教程(二)

sourceTree使用教程(二)

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

sourceTree使用教程(二)

 

三 sourceTree中创建分支和合并分支的使用方法和使用场景。

 

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

 

 

SourceTree使用教程(三)

 

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

 

 

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

 

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

 

SourceTree使用教程(三)


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

 

 

SourceTree使用教程(三)


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

 

SourceTree使用教程(三)


7 再提交一条新增记录,如下图。可以看到develop分支比master分支多了2条提交记录。

SourceTree使用教程(三)

SourceTree使用教程(三)


8 功能1和2测试通过,现在要将develop分支上新增的两个功能合并到主分支master上。
将当前分支切换到master分支,鼠标移到到develop分支,右键,选择合并develop至当前分支,也即是主分支。

 

SourceTree使用教程(三)


9 点击确定

 

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

 

SourceTree使用教程(三)

 

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

 

SourceTree使用教程(三)

四 解决冲突 

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

  1.  

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

    SourceTree使用教程(四)---冲突解决

  2.  

    登录GitHub ,打开GitTest,编辑test1.txt文件

    SourceTree使用教程(四)---冲突解决

  3.  

    在文件末尾增加 内容 code conclick1,点击提交。如下图所示。

    SourceTree使用教程(四)---冲突解决

    SourceTree使用教程(四)---冲突解决

  4.  

    打开本地工作副本的test1.txt文件,新增内容code conclick2,如下图:

    SourceTree使用教程(四)---冲突解决

  5. 打开sourceTree,可以看到本地工作副本有个待提交记录。

    SourceTree使用教程(四)---冲突解决

  6. 推送代码。这个时候你修改完了本地的功能,并不知道远程仓库上也有人提交了该文件的修改。直接推送本地修改,推送本地工作副本到远程仓库,运行完成后会报错,大概是提示本地仓库和远程仓库版本不一致,无法提交,但是本地工作副本的修改却是已经提交到了本地仓库。如下图。

    SourceTree使用教程(四)---冲突解决

    SourceTree使用教程(四)---冲突解决

  7. 既然提示 和远程仓库版本不一致,无法推送,那只能先拉成一致了。点击拉取图标,等执行完,就会出现下图所示。有一个待拉取的图标和一个待推送的图标,并且test1.txt文件的图标变成了黄色的感叹号。这个时候文件的冲突就造成了。

    SourceTree使用教程(四)---冲突解决

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

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

    SourceTree使用教程(四)---冲突解决

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

    SourceTree使用教程(四)---冲突解决

  10. 等待一会,Beyond Compare 4就会被打开。第一块是本地修改的版本,第二块是冲突两者(本地仓库和远程仓库)相同的版本基准,第三块是 远程仓库的修改。第四块是冲突处理后的代码。

    SourceTree使用教程(四)---冲突解决

  11. 本次解决冲突是为了合并两者的修改,所以我会把第一块和第三块所做的修改按照正确的逻辑顺序,合到第四块。如下图,点击保存。关闭该对比软件。

    SourceTree使用教程(四)---冲突解决

  12. 切到sourceTree界面,可以看到多了一个解决冲突的中间文件,由于冲突已解决,直接右键移除,

    SourceTree使用教程(四)---冲突解决

  13. 可以看到冲突已解决,代码已正确合并。推送该合并。

    SourceTree使用教程(四)---冲突解决

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

    SourceTree使用教程(四)---冲突解决

 

五 Sourcetree支持文件的部分提交

SourceTree比起tortoiseGit来,最大的不同之处在于 Sourcetree支持文件的部分提交,这大大方便了用户的使用。

       有的时候,我们开发了一个A功能,未上线,同时又并发开发了B功能,B功能比A功能先上线,而且B功能和A功能修改的是同一个文件,这种情况在上线B功能时,SourceTree就体现出优势了。

  1.  

    打开本地工作副本,增加文件activityServiceImpl.java,这个文件没啥特别,就是代码行数很多,方便演示。

    SourceTree使用教程(五)

  2.  

    打开SourceTree,推送该文件。

    SourceTree使用教程(五)

  3.  

    打开新增文件,新增func1,func2,func3三个功能,

    SourceTree使用教程(五)

  4. 现在的要求是,只提交func3,不提交func1和func2。打开sourceTree。如下图

    SourceTree使用教程(五)

  5. 右边区域滑到add func3处,点击暂存区块,该区块就会保存到待提交区。

    SourceTree使用教程(五)

  6. 已暂存文件里是待提交的,未暂存文件里不需要提交的,这样在一个文件里,就可以提交需要提交的,而不需要提交的也可以保留在工作区,等待下次提交

    SourceTree使用教程(五)

  7. 提交推送,如下图。

    SourceTree使用教程(五)

  8. 撤销回滚。在团队协作开发中,有时候提交完代码后,发现提交错了,这个时候,撤销回滚就起了重要作用。

    在最新的提交记录上,右键-》回滚提交

    SourceTree使用教程(五)

  9. 在弹窗里选择是。

    SourceTree使用教程(五)

  10. 可以看到提交历史记录多了一个Revert  反向提交

    SourceTree使用教程(五)

  11. 打开本地工作副本,看到 做的修改已去除

    SourceTree使用教程(五)

  12. 这个时候,反向提交只提到了本地仓库,如需撤销远程仓库的,还需推送到远程仓库

    SourceTree使用教程(五)

  13. 点击推送,可以看到提交的func3已撤销。如下图。

    SourceTree使用教程(五)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sourceTree使用教程详解 的相关文章

  • [sourcetree] rebase的使用

    相关问题 最近写自己的辣鸡代码使用git时 xff0c 因为个人不大熟悉git又是个强迫症 xff0c 被来回不同的版本折腾来折腾去的 xff0c 十分不爽 xff0c 于是在此小结下sourcetree怎么使用变基 变基rebase这个操
  • 在 SourceTree 中使用 git rebase (变基)

    原始状态 假如我们要在 master 分支上进行开发 xff0c 在远端的 master 分支上右键 xff0c 检出 一个自己的开发分支 dev 1 做一些开发 xff0c 提交到本地 xff0c 不要推送 xff08 push xff0
  • sourcetree(mac)设置代理链接GitHub

    背景 xff1a 使用mac版的sourcetree上get代码 xff0c 由于不能使用https只能用ssh xff0c 可是常规使用win版本的操作在mac上不好使了 xff0c 总是提示上传失败 xff0c 请手动添加ssh 解决方
  • sourcetree 修改difftool 为 Beyond Compare 的方法

    sourcetree里设置不管用 xff0c google了下 xff0c 可以通过修改 gitconfig 文件来实现 diff tool 61 sourcetree difftool prompt 61 false difftool 3
  • Sourcetree介绍及使用

    Sourcetree是一个操作简单但功能强大的免费Git客户端管理工具 xff0c 可应用在Windows和Mac平台 Sourcetree的安装 xff1a 1 从Sourcetree Free Git GUI for Mac and W
  • Postman使用教程详解

    目录 1 Postman安装与接口请求基本操作1 1Postman安装1 2发起一个接口请求的小测试 2 接口测试实战2 1百度IP查询接口从抓包到测试实战2 2需要设置头域的请求实战2 3文件上传与json请求实战 3 Newman命令行
  • Mac VSCode 配置Gitee |使用Sourcetree关联Gitee仓库

    目录 一 使用Git的基本操作 xff08 如果只是想看如何上传到gitee的直接跳过这个 xff09 xff1a 1 安装插件GitLens 2 初始化 3 git文件 4 创建一个示例文件 5 操作日志 6 操作日志查看 7 版本回退
  • 用sourcetree对gitlab进行项目管理

    前言 目前公司项目存放在gitlab ce上 xff0c 由于开发人员用的系统有Windows和Mac xff0c 所以选择了比较容易上手的sourcetree进行管理 该管理基于了git flow和fork flow的结合 sourcet
  • 源代码管理的另类比较:TortoiseGit vs SourceTree

    文章目录 源代码得管理那就Git吧图形化Git管理软件对比暗色主题图形分支与提交历史仓库与工程代码改动对比分支切换提交到多个远端仓库编码UTF8与Ansi总结 Git提供网站免费部分对比GitHubGitee华为云总结 源代码得管理 以往用
  • Sourcetree 更新git账号密码

    删除Sourcetree 缓存文件 只需要删密码文件 xff0c 文件位置 xff1a Mac xff1a Library Application Support SourceTree Windows xff1a C Users USERN
  • Sourcetree介绍及使用

    Sourcetree是一个操作简单但功能强大的免费Git客户端管理工具 xff0c 可应用在Windows和Mac平台 Sourcetree的安装 xff1a 1 从Sourcetree Free Git GUI for Mac and W
  • SourceTree 总是提示 git credential manager

    解决 1 使用sourcetree内嵌的git 还不行的话更新下版本 2 仓库设置里面加上用户名密码 格式 http 用户名 密码 xxx git
  • 七、vue项目使用高德地图自定义marker图标

    效果如图 主要代码 data return marker markers position 118 791545 31 9624 id 1 icon require assets xc ren png position 118 798832
  • Sourcetree 打开闪退怎么处理

    只需要把箭头指向的SourceTree exe Url 3vynpq3lkfkc3vf35ldq2wva2cs3o2zs文件删除 如果是多个一并删除 只留一个SourceTree文件夹即可
  • SourceTree使用教程(七)--合并某次提交

    概述 在Git的实际使用场景中 未必都是很规矩的拉一个分支 开发一个功能 等功能测试完成后 合并到主分支 有很多的场景都是很多人在同一个开发分支上开发 然后按照上线的实际需要 依次去上传自己的功能模块 这个功能模块的提交记录很可能是交叉提交
  • 使用sourceTree连接gitlab仓库

    总体步骤 安装git工具 生成ssh秘钥 配置gitlab秘钥 配置sourceTree 1 安装git省略 Git 详细安装教程 详解 Git 安装过程的每一个步骤 git安装 mukes的博客 CSDN博客 2 git生成ssh秘钥 h
  • sourcetree 无效的源路径 细节提示:系统找不到指定的文件

    工具 gt 选项 gt git 直接下拉到底 点击红框 重新下载一个内嵌git就可以了 我感觉是因为改变了原有git安装路径的问题
  • Git 无法锁定引用“HEAD”:无法解析引用 HEAD

    我正在尝试将更改提交到我的存储库 但收到以下错误 git c diff mnemonicprefix false c core quotepath false commit q F C Users Contronym AppData Loc
  • 如何将图标添加到我的存储库?

    我发现 Gitlab 和 SourceTree 支持每个存储库的图标 这使得它们更加具体且易于一眼找到 这怎么可能 作为开发人员 我们有时需要进行更改以使我们的工具看起来有所不同 你可以添加一个小的 我更喜欢96px x 96px logo
  • 使用 Cygwin 的 Git 克隆项目时出现问题

    当我尝试使用 Cygwin 的 Git 2 7 0 克隆项目时 我遇到了一些与权限相关的问题 也就是说 每次我尝试运行克隆项目的可执行文件之一时 我都会收到下一个错误 Windows 无法访问指定的设备 路径或文件 您可能没有访问该项目的适

随机推荐

  • VsCode中使用git

    你是否厌倦了每天早上到公司都要打开git 小黑框 执行git clone 地址去拉取代码 而强大的VsCode只需要点一下即可解决 1 添加到暂存区 xff0c 更改文件以后可以发现 点进去上图这个标志 如果没有 xff0c 右击左侧菜单栏
  • 虚拟机上无法运行ubuntu自带的gazebo仿真器报VMware: vmw_ioctl_command error 无效的参数

    问题说明 xff1a 虚拟机版本 xff1a VMware Workstation 16 Pro Ubuntu版本 xff1a Ubuntu 18 04 现象 xff1a gazebo闪退 xff0c 并报 VMware vmw ioctl
  • NVIDIA JETSON TX2镜像制作以及刷机流程

    一 安装环境准备 xff1a Ubuntu宿主主机一台 xff0c TX2新老板子各一个 xff08 老的用来镜像备份 xff0c 用这个镜像给新的刷机 xff09 xff0c USB Micro USB线一根 1 下载TX2驱动 直接在百
  • 各种排序混合---冒泡排序、选择排序、插入排序

    冒泡排序 不多说 xff0c 看代码 xff0c 就是把最大的数字或者最小的数字沉到最右边 xff0c 最后输出数组 include lt iostream gt include lt stdlib h gt include lt math
  • 【PyQt5】串口数据实时绘图

    常见的串口调试助手一般只有简单的文本界面 xff0c 偶然看到 Arduino IDE 自带的串口绘图工具 xff0c 觉得用户设计挺友好 想着利用一下周末空闲时间 xff0c 用 PyQt5 实现一个串口数据实时绘图小工具 xff0c 在
  • HTTPS、HTTPS、SSH、MSTSC等常用网络服务的端口号

    前言 今天在 powershell下使用curl命令访问 一个网址 返回 443 port 相关的错误信息 xff0c 我第一眼看 xff0c 还以为是HTTP STATUS CODE 于是去查了一会儿才发现 xff0c 是端口号的问题 下
  • vue服务端渲染——基础

    文章目录 vue服务端渲染 xff08 基础 xff09 Nuxt框架文件目录结构项目启动 打包生命周期SSRnuxtserverInitmiddleware 中间件全局中间件页面级中间件 validate 校验参数asynData校验参数
  • 变压变频调速的原理(VVVF)——基础补充

    1 变压变频调速系统的基本原则 xff1a 维持气隙磁通不变 根据电磁感应原理 xff0c 气隙磁通在定子绕组每相绕组中的感应电动势为 xff1a Fs 为定子频率 xff0c Ns 为定子每相绕组串联匝数 xff0c Kns为基波绕组系数
  • RIA迷你书序言

    RIA Minibook Prologue RIA迷你书序言 Rich Internet Applications or RIAs have truly revolutionized user experiences online When
  • Tensorflow版本和python对应关系,以及tensorflow下载路径

    A few installation mechanisms require the URL of the TensorFlow Python package The value you specify depends on your Pyt
  • 串口的应用层操作

    一 设备中一般会用第二串口与外设通信 需要可以配置波特率 xff0c 实现应用层面的串口读写 二 代码实现 span class token macro property span class token directive hash sp
  • 委托与事件

    委托与事件 一 委托 xff08 delegate xff09 1 委托是一种可以把引用存储为函数的类型 2 在定义了委托后 xff0c 就可以声明该委托类型的变量 xff0c 接着把这个变量初始化为与委托有相同返回类型和参数类别的函数引用
  • 类域

    class String public 错误 名字 index type 还没有被声明 char amp operator index type typedef int index type 在类定义中用到的名字必须在使用前首先被声明这个规
  • 怎样把自己写的组件、库推到npm服务上面,并给别人使用?

    1 创建npm账号 2 cmd命令行到某个文件夹下 xff0c 然后登录 span class nx npm span span class nx login span 3 npm init填写包名 xff0c 以及一些信息 4 通过npm
  • 浅析 耦合 紧耦合 松耦合 解耦

    耦合 指模块之间的依赖关系 xff0c 包括控制关系 调用关系 数据传递关系 模块间联系越多 xff0c 其耦合性越强 xff0c 同时表明其独立性越差 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准 划分模块的一个准则就是高内聚
  • 机器人视觉项目:视觉检测识别+机器人跟随(1)

    更新一波暑假做的机器人视觉检测跟随的项目 xff0c 有一些笔记都放在博客中 xff0c 有需要的可以交流 项目的目的是在机器人上搭建视觉检测系统 xff0c Kinect 43 ros 43 深度学习目标检测 43 行人识别 xff08
  • 机器人视觉项目:视觉检测识别+机器人跟随(17)

    参考一个实例行人检测 在ubuntu 43 ros环境下 xff0c 利用RGBD采集数据给小车 xff0c 实现行人跟随 原作者开源的例子是出现一个窗口 xff0c 用鼠标选择一个区域做kcf跟随 xff0c 选择的物体不受限制 xff0
  • UNIX系统中进程由哪三部分组成

    在UNIX系统中进程由以下三部分组成 xff1a 进程控制块PCB xff1b 数据段 xff1b 正文段 UNIX系统为了节省进程控制块所占的内存空间 xff0c 把每个进程控制块分成两部分 一部分常驻内存 xff0c 不管进程是否正占有
  • MAVLink.io(4)--MAVLlink Version

    MAVLink Version 版本 MAVLink发展处几个版本 xff1a MAVLink 2 0 目前推荐的主要版本 xff0c 2017被大部分用户接受 MAVLink v1 0 2013年被广泛接受 xff0c 一直被大批设备采用
  • sourceTree使用教程详解

    SourceTree是最好用的版本管理客户端软件 xff0c 没有之一 本人将以连载经验的形式来详细讲述如何利用sourceTree去进行代码或文件的版本管理 教程一将讲述 克隆 xff0c 提交 xff0c 和推送 一 SourceTre