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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Java基础揉碎]接口

目录 为什么有接口 基本介绍 接口的应用场景 注意事项和细节 接口和继承类的比较 总结 >接口和继承解决的问题不同 >接口比继承更加灵活 >接口在一定程度上实现代码解耦 接口的多态特性 多态参数 ​编辑 多态数组 多态传递 ​编辑 为什么有接口 usb插槽就是…

Educational Codeforces Round 163 (Rated for Div. 2) E. Clique Partition

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e9, maxm 4e4 5; co…

halcon图像腐蚀

1、原理 使用结构元素在图像上移动&#xff0c;只有结构元素上的所有像素点都属于图像中时&#xff0c;才保留结构元素中心点所在的像素&#xff0c;常用于分离连接的两个物体、消除噪声。 2、halcon代码 dev_open_file_dialog (read_image, default, default, Selection) r…

【Java八股面试系列】Arraylist和HashMap的底层原理

文章目录 ArrayList源码总&#xff1a;构造方法扩容机制remove HashMap总&#xff1a;构造方法细节问题putVal()方法resize()方法Hash值 HashMap常见问题 ConcurrentHashMap总&#xff1a;putVal()方法自己的测试 为什么重写HashCode和equals ArrayList源码 总&#xff1a; *…

C++template之类模版进一步了解

目录 一、类模板实例化 1.非类型模版参数 2.函数模板的特化 3.类模板特化 3.1全特化 3.2偏特化 3.2.1部分特化 3.2.2对参数进一步限制 二、注意事项 1.类模板的定义和声明要在同一个文件&#xff0c;不然容易出错 前言&#xff1a;这一篇是在我的上一篇文章的基础上&am…

网络安全接入认证-802.1X接入说明

介绍 802.1X是一个网络访问控制协议&#xff0c;它可以通过认证和授权来控制网络访问。它的基本原理是在网络交换机和认证服务器之间建立一个安全的通道&#xff0c;并要求客户端提供身份验证凭据。如果客户端提供的凭据是有效的&#xff0c;交换机将开启端口并允许访问。否则&…

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

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

使用Kaggle API快速下载Kaggle数据集

前言 在使用Kaggle网站下载数据集时&#xff0c;直接在网页上点击下载可能会很慢&#xff0c;甚至会出现下载失败的情况。本文将介绍如何使用Kaggle API快速下载数据集。 具体步骤 安装Kaggle API包 在终端中输入以下命令来安装Kaggle API相关的包&#xff1a; pip install…

linux bypy 定时备份到百度网盘

安装 # 先卸载安装的python-pip sudo yum remove python-pip# 下载get-pip.py文件 wget https://bootstrap.pypa.io/pip/2.7/get-pip.py sudo python get-pip.py直接访问这个地址下载文件,再导入linux更快! https://bootstrap.pypa.io/pip/2.7/get-pip.py 连接 复制上面的连…

Prometheus+grafana环境搭建mysql(docker+二进制两种方式安装)(三)

由于所有组件写一篇幅过长&#xff0c;所以每个组件分一篇方便查看&#xff0c;前两篇 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabbitmq(docker二进制两种方式安装)(二)-CSDN博客 1.监控mysql 1.1官方地址:…

Unity TrailRenderer的基本了解

在Unity中&#xff0c;TrailRenderer组件用于在对象移动时创建轨迹效果。通常用于增强游戏中的动态物体&#xff0c;比如子弹、飞行道具或者角色移动时的拖尾效果。 下面来了解下它的基本信息。 1、创建 法1&#xff1a;通过代码创建 using UnityEngine;public class Trail…

linux系统命令chkconfig详解,管理系统服务的工具-查看、启用、禁用和设置系统服务的启动级别

目录 一、chkconfig命令介绍 二、命令的主要作用 1、管理服务的启动和停止&#xff1a; 2、配置运行级别&#xff1a; 3、简化系统管理&#xff1a; 4、查看服务状态&#xff1a; 三、命令语法 1、基本语法 2、运行级别 四、获取帮助 1、通过help获取 2、通过man获…

Eclipse+Java+Swing实现斗地主游戏

一. 视频演示效果 java斗地主源码演示 ​ 二.项目结构 代码十分简洁&#xff0c;只有简单的7个类&#xff0c;实现了人机对战 素材为若干的gif图片 三.项目实现 启动类为Main类&#xff0c;继承之JFrame&#xff0c;JFrame 是 Java Swing 库中的一个类&#xff0c;用于创建窗…

软考 系统架构设计师系列知识点之云原生架构设计理论与实践(8)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之云原生架构设计理论与实践&#xff08;7&#xff09; 所属章节&#xff1a; 第14章. 云原生架构设计理论与实践 第2节 云原生架构内涵 14.2 云原生架构内涵 关于云原生的定义有众多版本&#xff0c;对于云原生架构的…

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

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

探索父进程和子进程

文章目录 通过系统调用查看进程PID父进程、子进程 通过系统调用创建进程-fork初识为什么fork给父进程返回子进程的PID&#xff0c;给子进程返回0fork函数如何做到返回两个值一个变量为什么同时会有两个返回值&#xff1f;bash总结 通过系统调用查看进程PID getpid()函数可以获…

大屏可视化项目示例--基于Vue3+vite2+echart+mock+axios+dataV

图例&#xff1a; 项目环境&#xff1a; Vite、Echarts、Npm、Node、axios、mock、vue3、dataV。 项目地址&#xff1a; IofTV-Screen-Vue3: &#x1f525;(IofTV-Screen Vue3版本)一个基于 vue3、vite、Echart 框架的物联网可视化&#xff08;大屏展示&#xff09;模板&…

多尺度变换(Multidimensional Scaling ,MDS)详解

一、基本思想 MDS&#xff08;Multidimensional Scaling &#xff0c;MDS多维尺度变换&#xff09;是一种经典的降维算法&#xff0c;其基本思想是通过保持数据点之间的距离关系&#xff0c;将高维数据映射到低维空间中。 具体来说&#xff0c;MDS算法的基本步骤如下&#xff…

Cocos2dx-lua ScrollView[三]高级篇

一.概述 本文缩写说明&#xff1a;sv ScrollView, cell代表ScrollView的一个子节点 本文介绍sv的一种封装类库&#xff0c;来实现快速创建sv&#xff0c;有如下几个优点&#xff1a; 1.item的位置通过参数控制&#xff0c;提高开发效率 2.免去了调用sv的API&#xff0c;提…

Leetcode 322. 零钱兑换

心路历程&#xff1a; 这道题和上一道完全平方数的和基本上一摸一样&#xff0c;甚至比上一道题还简单&#xff0c;基于dp的建模&#xff1a; 状态&#xff1a;当前的目标总金额 动作&#xff1a;选哪一个硬币 返回值&#xff1a;凑成该目标总金额的最少硬币个数 这道题如果硬…