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

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

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

(二)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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/508197.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“转行做程序员”很难?这里有4个建议

近几年来,传统行业多处于经济下行,加上互联网行业的赚钱效应,想要转行到这一行的人越来越多,其中程序员这个行业更是很多人梦寐以求的。 但另一方面,我们也发现,这些想要转行的同学们往往会遇到很多困扰。…

企业员工在线培训系统功能介绍

随着信息技术的飞速发展,企业员工培训方式正逐步从传统的面授转向灵活高效的在线培训。一个综合性的企业员工在线培训系统能够为员工提供多样化的学习资源、便捷的学习途径和有效的学习监督,以下是该系统的主要功能详细介绍: 1. 课程功能 线…

如何应对光模块故障,只需一条命令!

你们好,我的网工朋友。 是设备就有故障,光模块也不例外,而且很多项目的故障首先要排除光模块的问题。 像光模块型号选用是否正确? 使用的跳线是否正确? 交换机接口是否用匹配? ....各种各样的问题&…

MySQL中count(*) 和 count(1)区别

MySQL 中 count(*) 和 count(1) 的异同 count() 函数的基本原理 语法: COUNT(expr)其中: expr 可以是字段名、常量、表达式或星号 (*)。 用法: count() 函数用于统计满足特定条件的记录数量。它可以有以下几种用法: 1. 统计…

【带你了解下前端开发语言有那些】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

JavaEE初阶之线程安全(一)

目录 题外话 正题 1.线程调度是随机的 2.修改共享数据 知识点 线程同步机制 线程异步机制 举例说明 synchronized() 知识点 举例说明 举例代码详解 死锁 举个例子: 代码 小结 题外话 这两天忽冷忽热的感冒了,昨天状态特别不好断更了一天,今天继续加油! 我会把…

【RT_Thread】---stm32f407zgt6使用env配置工程

用rt_thread env配置工程 1. git rt_thread 源码 2.找到对应芯片厂家扳机支持包 3 重新命名一个自己项目的工程 4 打开env 配置驱动 具体参考官方:Env 用户手册 (rt-thread.org) 5 修改路径为英文 6 修改完boad init 就应该可以用了(还有系统时钟不然会有问题)…

基于stm32的h5的spi屏幕调试

基于stm32的h5的spi屏幕调试 本文目标:基于stm32的基础实验 按照本文的描述,应该可以跑通实验并举一反三。 先决条件:装有编译和集成的开发环境,比如:Keil uVision5、STM32CubeMX 使用外设:GPIO、SPI …

Redis中的复制功能(一)

复制 概述 在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave),如图所示…

Python 全栈体系【四阶】(十八)

第五章 深度学习 一、基本理论 4. 神经网络的改进 4.1 神经网络的局限 全连接神经网络的局限(一) 未考虑数据的“形状”,会破坏数据空间结构。例如,输入数据是图像时,图像通常是高长通道方向上的 3 维形状。但是&a…

基于springboot+vue实现的房源出租信息系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】:Java 【框架】:spring…

Java学习之类和对象、内存底层

目录 表格结构和类结构 表格的动作和类的方法 与面向过程的区别 具体实现 对象和类的详解 类的定义 属性(field 成员变量) 方法 示例--编写简单的学生类 简单内存分析(理解面向对象) 构造方法(构造器 constructor) 声明格式: 四…

深入探究Shrio反序列化漏洞

Shrio反序列化漏洞 什么是shrio反序列化漏洞环境搭建漏洞判断rememberMe解密流程代码分析第一层解密第二层解密2.1层解密2.2层解密 exp 什么是shrio反序列化漏洞 Shiro是Apache的一个强大且易用的Java安全框架,用于执行身份验证、授权、密码和会话管理。使用 Shiro 易于理解的…

FittenChat:程序员写代码的最好辅助利器,没有之一

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 📌 擅长领域:全栈工程师,大模型,爬虫、ACM算法 💒 公众号&#xff…

如何评估基于指令微调的视觉语言模型的各项能力-MMBench论文解读

1. 传统基准的固有局限 VQAv2:视觉问题回答数据集,主要用于评估视觉理解与推理能力。COCO Caption:图像描述生成数据集,用于评估模型对图像内容的理解与描述能力。GQA:结合常识的视觉问题回答数据集。OK-VQA:需要外部知识的视觉问题回答数据集。TextVQA:图像中包含文本的…

Linux系统网络的实时性评估

目录 1.使用 cyclictest 测试系统实时性2.测试系统通信实时性2.1 PingPlotter2.2 使用 ping 测试通讯实时性 3. 使用 iperf 测试带宽4.网络性能测试 1.使用 cyclictest 测试系统实时性 安装cyclictest sudo apt-get update sudo apt-get install rt-testscyclictest -p 99 -i…

TS学习01 基本类型、编译选项、打包ts代码

TS学习 TypeScript00 概念01 开发环境搭建02 基本类型基本使用⭐类型 03 编译选项tsconfig.jsoncompilerOptions语法检查相关 04 webpack打包ts代码错误解决 05 babel TypeScript BV1Xy4y1v7S2学习笔记 00 概念 以 JavaScript 为基础构建的语言 一个 JavaScript 的超集 Type…

如何使用KST指标进行多头交易,Anzo Capital一个条件设置

在之前的文章中,我们进行分享了以下知识:什么是KST指标,以及如何进行计算KST指标。有聪明的投资者就在后台进行咨询Anzo Capital昂首资本了,我们知道这些知识有什么用呢? 当然有用了,只要理解背后的逻辑知…

三层架构实验--对抗遗忘

交换配置顺序: channel vlan Trunk stp svi vrrp dhcp 绑定channel [sw1]interface e [sw1]interface Eth-Trunk 0 [sw1-Eth-Trunk0]int g 0/0/22 [sw1-GigabitEthernet0/0/22]eth-trunk 0 [sw1-GigabitEthernet0/0/23]eth-trunk 0 [sw2]interface Eth…

【语言信号增强算法研究-1】维纳滤波(Wiener Filter)

1 语音增强方法分类 2 维纳滤波的局限性 对于非线性和非高斯噪声的处理效果不佳; 对于信号和噪声的统计特性要求比较高,需要准确地了解信号和噪声的分布规律(说明自适应很差); 在处理复杂信号时,需要进行多…