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

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签