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

2024-04-02 00:44

本文主要是介绍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

这篇关于Git、TortoiseGit、SVN、TortoiseSVN 的关系和区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/868559

相关文章

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Spring中@RestController和@Controller的使用及区别

《Spring中@RestController和@Controller的使用及区别》:本文主要介绍Spring中@RestController和@Controller的使用及区别,具有很好的参考价... 目录Spring中@RestController和@Controller使用及区别1. 基本定义2. 使