Sourcetree 虽然不咋的好用,但了解一些基本使用也算可以_sourcetree好用吗-程序员宅基地

技术标签: git  Java 技术栈  svn  

在这里插入图片描述

一、基本介绍

1.1 基本介绍

  Sourcetree 是一款Windows 和Mac OS X 下免费的 SVN、Git 客户端,同时也是 Mercurial 和 Subversion 版本控制系统工具。Sourcetree 支持创建、克隆、提交、push、pull 和合并等操作。SourceTree 拥有一个精美简洁的界面,无需使用命令行,可以处理托管和本地存储库,主要依赖可视化界面操作,省去繁琐复杂不容易理解的终端命令,大大简化了开发者与代码库之间的 Git 操作方式,这对于那些不熟悉Git命令的开发者来说非常实用。

在这里插入图片描述

1.2 主要功能

1.3 什么是版本控制

  版本控制,也称为源代码控制,是跟踪和管理软件代码更改的做法。版本控制系统是帮助软件团队管理源代码随时间变化的软件工具。随着开发环境的加速,版本控制系统帮助软件团队更快、更智能地工作。它们对 DevOps 团队特别有用,因为它们可以帮助他们减少开发时间并增加成功部署,帮助高性能开发和团队繁荣发展。
  版本控制软件跟踪对特殊数据库中代码的每一次修改。如果出现错误,开发人员可以倒流并比较早期版本的代码,以帮助修复错误,同时最大限度地减少对所有团队成员的干扰。
  对于几乎所有的软件项目,源代码就像皇冠上的宝石——一种必须保护其价值的宝贵资产。对于大多数软件团队来说,源代码是开发人员通过仔细努力收集和提炼的关于问题域的宝贵知识和理解的存储库。在团队中工作的软件开发人员不断地编写新的源代码并更改现有的源代码,团队中的一位开发人员可能正在开发一项新功能,而另一位开发人员通过更改代码来修复不相关的错误,每个开发人员都可能对软件的某个部分所做的更改可能与另一位同时工作的开发人员所做的更改不兼容。此外,在所有软件开发中,任何更改都可能自行引入新的错误,并且新软件在经过测试之前不能被信任。版本控制可帮助团队解决此类问题,跟踪每个贡献者的每个单独更改,并帮助防止并发工作发生冲突。
  良好的版本控制软件支持开发人员首选的工作流程,而不会强加一种特定的工作方式。理想情况下,它也适用于任何平台,而不是规定开发人员必须使用什么操作系统或工具链。出色的版本控制系统促进了对代码的流畅和持续的更改流程,而不是文件锁定的令人沮丧和笨拙的机制 - 以阻止其他开发人员的进展为代价为一个开发人员开了绿灯。

二、安装和设置

2.1 Mac 安装

  1. 登录Sourcetree官网 : https://www.sourcetreeapp.com/,点击Download for Mac OS X,即开始自动下载,大约60M,稍微等待即可。
    在这里插入图片描述

  2. 下载完成后双击软件安装包,若是出现【Sourcetree 已损坏,无法打开,因为无法确认开发者的身份】,这是 macOS 启用了新的安全机制的问题,苹果默认是只允许安装自家【App Store】来源的应用,如果你想安装第三方的应用,那么需要在【系统偏 好设置 -> 安全性与隐私 -> 通用】中点击【仍要打开】选项。
    在这里插入图片描述

  3. 拖动Sourcetree到Applications中
    在这里插入图片描述

  4. 打开SourceTree Mac版,弹出注册界面。这一步跳过不了,必须搞一个自己的账户,如果使用已有账户的就不用说了,没有的话注册就可以了,但是注册过程很繁琐。

三、界面

3.1 书签窗口

书签窗口显示小伙伴们连接到的存储库。

  启动 Sourcetree 时出现的主窗口,在该窗口中,选择本地远程按钮以查看您计算机上的本地存储库或您可以克隆的远程存储库,如下图所示。其中过滤仓库搜索框其实就是个搜索框,可以根据仓库名字的关键字搜索出仓库,而单击 新建 按钮以获取更多用于连接或创建新存储库的选项。右上角的设置按钮比较简单,这里就不再解释大家自行点开一下就明白了。
在这里插入图片描述

  这几个新建下的操作下面会有具体操作来详细阐释整个使用过程,这里就不再多说来。

3.2 工具栏界面

工具栏是在不使用命令行的情况下采取行动的地方。

  当小伙伴使用 Sourcetree 打开存储库时,就会看到此工具栏,工具栏提供了通常在命令行中完成的各种选项。随便双击打开主页中的一个项目,在 SourceTree界面点击文件状态,会看到刚才添加的项目。

在这里插入图片描述

当项目中文件内否有所改变时 就会显示在此
在这里插入图片描述

点击未暂存文件,回到已暂存文件中,意思是我们允许提交到仓库,现在就可以提交至远程仓库,例如GitHub仓库。
在这里插入图片描述

页面中的几个按钮,作用如下表所示:

按钮 说明
提交:Commit 指本地仓库的文件提交到本地仓库保存
拉取:Pull 从关联账号的托管平台(比如github)的众多远程仓库中下载一个仓库到本地,前提是账号里创建的有仓库
推送:Push 将本地仓库源文件提交到本地并更新到托管平台的远程仓库中
抓取:Fetch 从远程仓库抓取本仓库的更新内容并更新到本地仓库
分支: branc 基于一个分支,建立自己的本地分支
合并:merge 合并其他分支到自己的本地分支
暂存:git stash 存储当前工作区的变更
在finder中显示
设置

3.3 侧边栏

在存储库窗口中,侧边栏提供对有关当前存储库的关键信息的访问。

当小伙伴使用 Sourcetree 打开存储库时,就会看到此侧边栏。侧边栏为存储库的当前工作区、可用分支、远程分支和标签等提供选项。

分类 选项 说明
工作区
文件状态
历史 1、可以查看存储库的完整历史记录
2、在此视图中选择多个提交时,您将能够查看在这些提交之间所做的更改。
搜索
分支
标签
远端
已贮藏
子模块
子树

四、基础操作

4.1 拉取远程仓库

  1. 打开SourceTree软件,选择新建-从URL克隆,如下图所示。
    在这里插入图片描述

  2. 输入远程仓库的https地址,第一次会要你输入账号密码,填入远程仓库注册的账号密码即可。点击‘克隆’之后,这里sourceTree会自动在‘目标路径’下创建一个文件夹本地创建一个文件夹
    在这里插入图片描述

  3. 完成

4.2 连接远程仓库

要将存储库添加到 Sourcetree,小伙伴们请使用 Bitbucket 或 Github 帐户登录。您可以将多个帐户添加到 Sourcetree。

  1. 单击齿轮图标并选择 帐户
    在这里插入图片描述

  2. 单击 帐户选项卡中的添加

  3. 选择主机后,输入您的主机详细信息。如果您选择了BitbucketGitHub,请保留默认的授权类型并单击链接账号以输入您的凭据。当您输入您的帐户详细信息时,您可以选择是更喜欢使用 HTTPS 还是 SSH 连接。
    在这里插入图片描述

4.3 克隆远程存储库

如果小伙伴们在 Bitbucket 或 Github 上已有远程存储库,则需要将其复制或克隆到您的计算机上。

  1. 在 SourceTree 中,单击 远程。您的所有远程项目都会显示。
  2. 单击 要在本地克隆的存储库旁边的克隆。
  3. 克隆存储库 窗口中,单击 克隆。单击本地以查看克隆存储库的列表。

4.4 创建本地存储库

如果您刚刚开始,小伙伴们可以从 Sourcetree 在本地创建一个存储库,否则可以跳过此步骤。

  1. 单击 新建,然后选择 创建本地存储库
  2. 输入目标路径和存储库名称,然后单击 创建

4.5 添加现有的本地存储库

如果您已经有一个存储库,您可以在 SourceTree 中查看它。

  1. 单击 新建,然后 单击添加现有本地存储库
  2. 选择希望添加的存储库,然后单击 Open,添加的存储库出现在 Local下。

4.6 pull操作

  pull拉取远程代码到本地(将同组小伙伴儿提交的代码先拉到本地,再开发,防止冲突),直接点击操作区的拉取按钮即可将代码拉取,如果有需要拉取的内容会显示数字。

  1. 在 SourceTree 中的存储库中,单击 Pull 按钮。将出现一个弹出窗口,表明您正在将文件从 Bitbucket 合并到本地存储库。
  2. 此弹出窗口中单击 “确定”。
  3. 导航到本地系统上的存储库文件夹,您将看到刚刚添加的文件。 SourceTree 在您的历史视图中使用新文件进行更新。

4.7 commit操作

Commit提交自己写的代码到分支,即将暂存文件上传到本地仓库。

在项目没有任务修改时(即跟远程仓库一致),如下图所示:
在这里插入图片描述

  接下来打开仓库中的工程,创建一个新的文件testCommit.txt,打开 Sourcetree 本地仓库查看,我们发现刚才的改动的文件显示到了为暂存文件区域,选中testCommit.txt 文件,预览代码直接显示在右边的区域类,若是在文件中修改了内容,预览代码区域则用绿色文字和+显示(如果是删除了这一行,会用红色文字和-)出修改内容。注:这里仅仅是新建一个问题,所以什么都没显示,如下图所示。
在这里插入图片描述

  选中未暂存文件前的复选框,保存修改文件到Sourcetree,准备提交。点击左上角的提交按钮,输入提交日志(强烈建议写上,用于以后区分每次提交的代码所修改的内容),勾选立即推送的话可以直接提交到远程仓库,最后提交右下角的提交,即可保存到本地仓库和远程仓库,如下图所示。
在这里插入图片描述

第一次提交会让输入账号密码

4.8 push操作

  文件提交成功后,首先会先提交至我们的本地仓库(如果下伙伴儿没有勾选立即托送变更的话),然后就可以在“ 历史记录” 选项卡下看到更改,在 Sourcetree 中,单击 Push 按钮将提交的代码推送到远程仓库。
在这里插入图片描述

在出现的对话框中的列中,选择要推送更改的分支,然后单击 确定

在这里插入图片描述

注意:如果有待拉取内容,一定要先拉取再提交/推送,避免代码冲突

五、分支管理与使用

5.1 分支介绍

类型 说明
master 最终发布版本,整个项目中有且只有一个
develop 项目的开发分支,原则上项目中有且只有一个
feature 功能分支,用于开发一个新的功能
release 预发布版本,介于develop和master之间的一个版本,主要用于测试
hotfix 修复补丁,用于修复master上的bug,直接作用于master

  当开发中需要增加一个新的功能时,可新建feature分支,用于增加新功能,并且不影响开发中的develop源码,当新功能增加完成后,完成feature分支,将新功能合并到develop中,更新develop上的代码。
在这里插入图片描述

5.2 新建分支

  项目克隆完成之后,我们拉取的是 master 分支上的代码,由于 master 分支是主分支,项目多人开发的情况下,很容易造成冲突。所以我们一般会先新建一个自己的分支。首先在 Sourcetree 中,单击 分支 按钮。而后在“ 新分支” 字段中,输入分支的名称,点击 创建分支

  1. 在master基础上创建分支v1.0.1,如下图所示。

在这里插入图片描述
在这里插入图片描述

  1. 这样一条分支就创建了,创建完成后在左侧“历史”视图中就会出现,双击可以切换当前分支,在 master 分支改了代码,切换到新创建分支的时候不会出现 master 上改的代码,两者互不影响,只有在开发完了,提交推送合并分支的时候生效,所以本地开发要注意当前分支。

  2. 切换至v1.0.1然后推送分支到远程服务器
    在这里插入图片描述

    在这里插入图片描述

  3. 查看远端已经发现有v1.0.1

在这里插入图片描述

5.3 合并分支

如果功能分支落后 master,可以使用合并将该分支同步到您的功能分支中。

  将两个分支的代码合并,比如主分支是 master,然后在 v1.0.1 分支进行开发,开发完成后需要保持 master 是最新版本,所以需要将 v1.0.1 分支合并到 master。

  1. 切换至master主分支,拉取v1.0.1并合并至master主分支。
    在这里插入图片描述

  2. 单击 合并 按钮,从出现的弹出窗口中,选择要合并到功能分支中的提交。
    在这里插入图片描述

  3. 推送分支到远程服务器
    在这里插入图片描述
    在这里插入图片描述

  4. 单击 合并 按钮,从出现的弹出窗口中,选择要合并到功能分支中的提交,单击 确定
    在这里插入图片描述

  5. 将合并到master分支上的代码推送到远程服务器

  6. 合并完成后会有条记录,可以看到合并内容,这样两个分支的代码就合并到了master。

  1. 首先要切换到被合并的分支上,再进行合并操作。
  2. 分支合并时,可以选择具体的某提交进行合并,同时主分支可以合并到子分支;子分支可以合并到主分支;子分支之间也可以进行合并。
  3. 合并之前,保证各个分支中没有拉取或者需要提交的代码。

六、其他操作

6.1 冲突解决

  多人开发时,由于修改了同一个文件,可能会有文件冲突的情况。 拉取代码时,会有冲突提示,解决完相关的冲突文件,重新提交即可。可以在提交的时候先拉取代码,然后进行提交推送,可以解决冲突,如果拉取不下来可以先暂存再拉取,拉取完之后取消暂存,再删掉冲突代码,然后推送。如果代码有冲突,在代码上下文会出现如下内容:
在这里插入图片描述
自己根绝实际情况解决掉冲突代码即可:

  • 查看冲突,可选择’暂存区块’或者选中某行后‘暂存行块’,或者‘放弃区块’或者选中某行后‘暂存行块’
    在这里插入图片描述

  • 通过菜单栏->动作->解决冲突,一般在冲突较多时候采取该方法
    在这里插入图片描述

6.2 版本回退

  原则上,代码推送之前要保证本地的代码可运行,不要将不可运行或者有问题的代码推送到服务器上。如果由于误操作,将代码推送到了远程,想重新修改上传代码,这需要将版本进行回退。当我们提交代码到仓库后,如果想回滚到上次提交的状态时,选中左边的"历史"–>选中你要回滚的提交区块,点击右边的"回滚区块按钮",点击后,什么也不用做,直接用打开本地仓库文件中的项目查看,那行代码就消失了,即回滚成功。

在这里插入图片描述

6.3 代码变更溯源

这个功能是此软件最好的点,至少我觉得,不接受任何反驳。

工作时,我们经常会想要查看一个类文件的变更历史,最常见的场景是:“卧槽,谁改了我的代码”。

  1. 选择 ①文件状态 -> ②搜索文件 -> ③查看选中的修改日志
    在这里插入图片描述

  2. 如此可以看到所有改动到该文件的commit(是按时间顺序排列)
    在这里插入图片描述

6.4 集成 gitee

mac上sourcetree 无法推送代码至远程仓库,总是提示“ Incorrect username or password”

在这里插入图片描述

  其实解决方法很是简单,首先点击工具栏中的“设置”,然后选择“远程仓库”标签,接下来选中路径,而后点击下面的“编辑”按钮,编辑URL/路径。例如当前URL是https://gitee.com/project/my-project.git,使用的用户登录账号是zhangsan,其对应的密码是123456,那么添加用户名和密码后的URL则显示成http://zhangsan:[email protected]:10098/project/my-project.git,将其保存就足够了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/duleilewuhen/article/details/123969687

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法