当前位置: 首页 > news >正文

Git、TortoiseGit、SVN、TortoiseSVN 的关系和区别

Git、TortoiseGit、SVN、TortoiseSVN 的关系和区别

  • (一)Git(分布式版本控制系统):
  • (二)SVN(集中式版本控制系统)
  • (三)TortoiseGit
    • 一、下载安装 git
    • 二、安装过程
    • 三、git安装后的设置
    • 四、TortoiseGit安装配置过程
    • 五、安装完之后对tortoise进行配置
    • 六、如何利用TortoiseGit从Github上下载代码
    • 七、创建本地版本库
    • 八、Commit,Push,Pull/提交、推送、拉取文件
  • (四)TortoiseSVN

(一)Git(分布式版本控制系统):

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库.

经典的git开发过程:
在这里插入图片描述

Git的优缺点
对程序源代码进行差异化的版本管理,代码库占极少的空间。易于代码的分支化管理。不支持中文,图形界面支持差,使用难度大。不易推广。

Git的功能特性
从一般开发者的角度来看,git有以下功能:

  • 1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。

  • 2、在自己的机器上根据不同的开发目的,创建分支,修改代码。

  • 3、在单机上自己创建的分支上提交代码。

  • 4、在单机上合并分支。

  • 5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。

  • 6、生成补丁(patch),把补丁发送给主开发者。

  • 7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

  • 8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

(二)SVN(集中式版本控制系统)

SVN是Subversion的简称,是一个开放源代码的版本控制系统,支持大多数常见的操作系统。

作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。
这些数据放置在一个中央资料档案库(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。

Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括了程序源码。

集中式管理的工作流程如下图:
在这里插入图片描述
集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。

SVN 的优缺点
SVN对中文支持好,操作简单,使用没有难度,美工人员,产品人员,测试人员,实施人员都可轻松上手。使用界面统一,功能完善,操作方便。

SVN的特点概括

  • 1.每个版本库有唯一的URL(官方地址),每个用户都从这个地址获取代码和数据;

  • 2.获取代码的更新,也只能连接到这个唯一的版本库,同步以取得最新数据;

  • 3.提交必须有网络连接(非本地版本库);

  • 4.提交需要授权,如果没有写权限,提交会失败;

  • 5.提交并非每次都能够成功。如果有其他人先于你提交,会提示“改动基于过时的版本,先更新再提交”… 诸如此类;

  • 6冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者,后提交,可能遇到麻烦的冲突解决。

(三)TortoiseGit

Git 作为一个复杂的版本控制系统,命令很多,即使经常使用,有些命令也记不住。下面要借助一个图形化的软件 —— TortoiseGit 来操作 git

一、下载安装 git

下载地址:https://git-scm.com/downloads

二、安装过程

1.下载完成后,双击下载好的软件开始安装,出现如下对话框

2.点击Next,默认选项和图中不一样,建议按照图中修改,Git Bash Here和Git GUI Here可以方便的在任意目录下打开git,建议选中,选中这两项后Additional icons->On the Desktop就按照自己心情了。

这一步根据自己需要设置后,不爱折腾的小伙伴下面的步骤可以直接采用默认选项,当然也可以详细研究选择最适合自己的。

3.点击next,选择默认编辑器,我选择的是Notepad++。

4.继续next,配置PATH环境。

Use Git from Git Bash only:这是最安全的选择,因为你的PATH根本不会被修改,你只能使用Git Bash的Git命令行工具。
Use Git from the Windows Command Prompt:这个选项被认为是安全的,它只向PATH添加一些最小的Git包,以避免使用可选的Unix工具混淆环境。你将能够从Git Bash和Windows命令提示符中使用Git。建议选择此项。
Use Git and optional Unix tools from the Windows Command Prompt:Git和可选的Unix工具都将添加到计算机的PATH中。警告:这将覆盖Windows工具,如“find”和“sort”,只有在了解其含义后才使用此选项。

5.继续next,以下选项均为默认


6.点击Inall开始安装,安装完成后点击Finish即可。

7.进行测试

在开始菜单里点击“Git GUI"、“Git Bash”,弹出类似命令行的窗口,就说明Git安装成功!
在任意目录下右击,可以看到右键菜单中有Git GUI Here和Git Bash Here两个选项。

【在git bash 中输入git --version查看git版本看是否安装成功。】

git --version

如果中文没有正常显示,请求鼠标右击选择“option"选项,更换语言即可。

三、git安装后的设置

(1)如果是自己去GitHub下载代码单独使用,需要申请账号,看这个步骤,

如果是下面情况,第三步骤请跳过。

(2)如果只是项目组“推送”和拉取“”代码,就不需要注册了,让项目管理员开放权限给账号就行。


1、安装完成后需要设置自己的git账号和邮箱,否则无法正确使用,但是到目前为止还没有申请git账号,下面就来说一下具体的账号申请和git设置过程。点击账号申请网址 ,出现如下界面。

2、输入自己想要的账户名,自己的邮箱和密码,账户名只能包含字母和数字字符或者是单个连字符“-”并且连字符不可以作为开头或者结尾;密码中至少包含一个字母,一个数字,并且长度不小于7个字符。输入完成后后点击“Sign up for Github”,进入如下界面,同时注册用的邮箱中会收到一封GitHub的邮件。

3、通过验证后点击“Create an account”

【如果不需要保密,选择默认的免费选项即可,如果需要保密则需要付费。
点击Continue,出现无关紧要的答题,选选就好,之后Submit,搞定。】

【因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。账号申请完成后,打开命令行或者Git Bash,输入】

其中Your Name和email@example.com替换成上面注册时的账户名和邮箱。

git config --global user.name “Your Name”

之后回车,再输入

git config --global user.email email@example.com

【命令行下输入和Git Bash下输入均可。】

命令行下输入如图:

Git Bash下输入如图:

到这一步,Git的安装设置就基本结束了,可以在本机正常使用了

四、TortoiseGit安装配置过程

TortoiseGit-Git客户端与32/64位最新版及对应的语言包

下载地址:https://tortoisegit.org/download/

【上面是对应系统64位版本,下面是简体中文语言包,点击直接下载】

安装的方法,依照上述顺序安装,一直下一步就行。

【点next】

【点next】

【点next】

【点next】

【点next】选择安装位置

【点install】

【等待安装】

【点 finish】

【手速放慢】

【这一步选择语言是暂停一下,这一页不要动,双击安装下载的中文语言包】

【双击安装语言包】

【点下一步】

【点完成】

【回到之前选择语言的位置,点击【Refresh】】

【选择中文,再下一步】

【点下一页】

【选择之前git安装的位置】

【填写git注册信息,之后下一页】

【点击完成】

五、安装完之后对tortoise进行配置

1). 首先,请选定一个存放Git项目的目录,这样管理方便. 如: D:\test , 然后在资源管理器中打开

2). 在空白处点击鼠标右键,可以看到右键菜单中多了几个选项。选择 --> TortoiseGit --> Settings, 然后就可以看到配置界面,如下图所示:

3) 选中General,,Language中选择中文.。不勾选自动升级的复选框,可能还需要指定 Git.exe 文件的路径,如

    "D:\\DevlopPrograms\\Git\\bin"。完成后,点击应用,确定关闭对话框

4)再次点击鼠标右键,可以看到弹出菜单中已经变成中文.。原来的 Settings 变成 设置,Clone 变为 克隆。

5)配置右键菜单.。在设置对话框中,点选左边的"Context Menu",设置常用的右键菜单。楼主比较常用的是如下选项:

如上:配置完成.

六、如何利用TortoiseGit从Github上下载代码

将git上博客源文件克隆到本地,在本地创建好要存放资源的文件夹,之后在此文件内右键单击,可以看到下拉菜单中增加了TortoiseGit的三个选项,选择Git Clone。

输入Url,自动创建本地目录,也可以手动选择

注:递归需要勾上

确定以后就会Clone本地仓库了

七、创建本地版本库

新建一个项目目录StudyGit, 在代码目录右键选择创建版本库

【弹出提示,不要勾选纯版本库,直接确定】

【目录下生成一个.git的目录,这个目录里面记录的是git操作相关内容,不要动。创建一个新的Code目录。】

【至此,采购版本库建立完成了。后面续继操作。】

八、Commit,Push,Pull/提交、推送、拉取文件

1)当修改完一段代码后,需要把代码提交到版本库中

在上述目录中右击:

【第一次操作的时候会提示需要输入身份(邮箱)】

【点击,是】

【点击提交即可。】

【提交完成以后弹出如下提示】

【可以选择推送(如果已经编译通过),也可以先关闭不Push,点了推送】

【如果是第一次会出现身份认证的对话框:】

【点击管理:】

【复制你的github中的URL到上述URL中,点击添加、保存即可。】

【再点击确定】

【在提交的过程中填入用户名和密码即可】

【结果如下:即成功。】

【到远程仓库查看是否提交成功,如果远程仓库的内容和本地仓库内容一致,则说明Push成功了。】

接下来:

【当工作组里面的其它人写了一段代码,你需要获取时,就需要用到Pull操作。】

参考文章
【1】SVN和Git 介绍,区别,优缺点以及适用范围
https://blog.csdn.net/weixin_45151960/article/details/104720654
【2】Git及Tortoisegit下载安装及使用详细配置过程
https://blog.csdn.net/qq_39715000/article/details/119009507

(四)TortoiseSVN

可参考
【1】TortoiseSVN 安装
https://www.runoob.com/svn/tortoisesvn-intro.html

相关文章:

Git、TortoiseGit、SVN、TortoiseSVN 的关系和区别

Git、TortoiseGit、SVN、TortoiseSVN 的关系和区别 (一)Git(分布式版本控制系统):(二)SVN(集中式版本控制系统)(三)TortoiseGit一、下载安装 git二、安装过程…...

4月5日排序算法总结(1)

冒泡排序 利用每趟都确定出一个最大值或者最小值 如果需要排一个从小到大的数组,那么我们每一趟都要确定一个最大值放在最后,一共有n个数,我们最多需要排列n-1趟就可以了,我们可以改进自己的代码,利用一个flag标记&a…...

Pandas追加写入文件的时候写入到了第一行

# 原代码 def find_money(file_path, account, b_account, money, type_word, time):file pd.read_excel(file_path)with open(money.csv, a, newline, encodingutf-8) as f:for i in file.index:省略中间的代码if 省略中间的代码:file.loc[[i]].to_csv(f,indexFalse)find_sam…...

04---webpack编写可维护的构建配置

01 构建配置抽离成npm包; 意义:通用性: 业务开发者无需关注构建配置 统一团队构建脚本可维护性:构建配置合理的拆分 质量:冒烟测试 单元测试 持续集成构建配置管理的可选方案:1 通过多个配置文件管理不同…...

【云计算】云数据中心网络(一):VPC

云数据中心网络(一):VPC 1.什么是 VPC2.VPC 的组成2.1 虚拟交换机2.2 虚拟路由器 3.VPC 网络规划3.1 VPC 数量规划3.2 交换机数量规划3.3 地址空间规划3.4 不同规模企业地址空间规划实践 4.VPC 网络高可靠设计4.1 单地域单可用区部署4.2 单地…...

自动驾驶中的多目标跟踪_第一篇

自动驾驶中的多目标跟踪:第一篇 多目标跟踪(multi-object/multi-target tracking)的任务包括估计场景中目标的数目、位置(状态)或其他属性,最关键的是需要在一段时间内持续地进行估计。 附赠自动驾驶学习资料和量产经验:链接 应…...

AI爆款文案 巧用AI大模型让文案变现插上翅膀

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…...

Python入门的60个基础练习(一)

01-Hello World python的语法逻辑完全靠缩进,建议缩进4个空格。如果是顶级代码,那么必须顶格书写,哪怕只有一个空格也会有语法错误。下面示例中,满足if条件要输出两行内容,这两行内容必须都缩进,而且具有相…...

微软云学习环境

微软公有云 - Microsoft Azure 本文介绍通过微软学习中心Microsoft Learn来免费试用Azure上的服务,也不需要绑定信用卡。不过每天只有几个小时的时间。 官网 https://docs.microsoft.com/zh-cn/learn/ 实践 比如创建虚拟机,看到自己的账号下多了Learn的…...

大厂面试:找出数组中第k大的数的最佳算法

一.前置条件 假如数组为a,大小为n,要找到数组a中第k大的数。 二.解决方案 1.使用任意一种排序算法(例如快速排序)将数组a进行从大到小的排序,则第n-k个数即为答案。 2.构造一个长度为k的数组,将前k个数复制过来并降序…...

爬取高校专业信息的Python爬虫简介与实践

1. 介绍 在当前高校专业信息繁多的情况下,选择适合自己的专业成为了许多学生面临的挑战。为了帮助学生更好地了解各高校专业情况,我们开发了一个Python爬虫程序,用于爬取高校专业信息并保存到Excel文件中。本文将详细介绍该爬虫的实现过程以…...

redis 集群模式(redis cluster)介绍

目录 一 redis cluster 相关定义 1, redis cluster 是什么 2,redis 集群的组成 3,集群的作用 4,集群架构图 二 Redis集群的数据分片 1,哈希槽是什么 2,哈希槽如何排布 3,Redis集…...

python实现网络爬虫

网络爬虫是一个自动从互联网上抓取数据的程序。Python有很多库可以帮助我们实现网络爬虫,其中最常用的是requests(用于发送HTTP请求)和BeautifulSoup(用于解析HTML或XML文档)。 以下是一个简单的Python网络爬虫示例&a…...

LeetCode 836. 矩形重叠

解题思路 相关代码 class Solution {public boolean isRectangleOverlap(int[] rec1, int[] rec2) {int x1 rec1[0];int y1 rec1[1];int x2 rec1[2];int y2 rec1[3];int a1 rec2[0];int b1 rec2[1];int a2 rec2[2];int b2 rec2[3];return Math.min(y2,b2)>Math.max…...

为说阿拉伯语的国家进行游戏本地化

阿拉伯语是由超过4亿人使用的语言,并且是二十多个国家的官方语言。进入这些国家的市场并非易事——虽然他们共享一种通用语言,但每个国家都有自己独特的文化,有自己的禁忌和对审查的处理方式。这就是为什么视频游戏公司长期以来都远离阿拉伯语…...

【Python系列】读取 Excel 第一列数据并赋值到指定列

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

二叉树——存储结构

二叉树的存储结构 二叉树一般可以使用两种结构存储,一种是顺序结构,另一种是链式结构。 一、顺序存储 二叉树的顺序存储是指用一组连续的存储单元依次自上而下、自左至右存储完全二叉树上的结点元素,即将完全二叉树上编号为i的结点元素存储…...

LangChain - OpenGPTs

文章目录 MessageGraph 消息图认知架构AssistantsRAGChatBot 持久化配置新模型新工具astream_events总结 关键链接: OpenGPT GitHub 存储库YouTube 上的 OpenGPT 演练LangGraph:Python、JS 两个多月前,在 OpenAI 开发日之后,我们…...

pe格式从入门到图形化显示(四)-节表

文章目录 前言一、什么是Windows PE格式节表?二、解析节表并显示1.节表数据结构以及字段描述2.节表的属性3.解析4.显示 前言 通过分析和解析Windows PE格式,并使用qt进行图形化显示 一、什么是Windows PE格式节表? PE格式的节表&#xff08…...

路由策略与路由控制之双点双向重发布(OSPF-ISIS)实验

双点双向重发布在路由协议中,特别是在OSPF(开放式最短路径优先)与IS-IS(中间系统到中间系统)等协议之间,指的是在两个协议间或者两个进程间进行路由信息共享的机制。这种机制涉及到在两个不同的协议区域使用…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

无法与IP建立连接,未能下载VSCode服务器

如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

【论文笔记】若干矿井粉尘检测算法概述

总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

Spring Boot面试题精选汇总

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...