Git 和 SVN 有什么区别?

简介: SVN(Subversion) 属于集中化的版本控制系统,只有一个单一的服务器用来集中管理和保存所有文件的修订版本。

一、SVN

SVN(Subversion) 属于集中化的版本控制系统,只有一个单一的服务器用来集中管理和保存所有文件的修订版本。

而协同开发的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

注:VCS 指 Version control system(版本控制系统)

缺点:集中化的版本控制系统最显而易见的缺点是中央服务器的单点故障。如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。

二、Git

为了解决集中化的版本控制系统的缺点,分布式版本控制系统应运而生。Git 就是分布式版本控制系统的代表。

在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来,包括完整的历史记录

这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。

因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

三、总结

  • SVN 属于集中化版本控制系统,由单一服务器集中管理,如果中央服务器出现故障,很有可能无法恢复代码仓库。

  • Git 属于分布式版本控制系统,每一个客户端都完整的镜像了代码仓库,即使服务器故障,也可以从任何客户端恢复代码仓库。

相关文章
|
6天前
|
程序员 Linux 开发工具
Git基本概念、工作流程及与SVN的对比
Git基本概念、工作流程及与SVN的对比
51 0
|
7月前
|
移动开发 小程序 Linux
【Linux】Linux和Window下\r与\n的区别、git命令行的使用
目录 1. 回车换行符在Window下和在Linux下的区别: 1.1回车换行符: 1. 2.行缓冲区打印: 1.3进度条小程序 :
112 0
|
6天前
|
存储 算法 开发工具
git是什么?git的五个命令,git和svn的区别
git是什么?git的五个命令,git和svn的区别
51 0
|
6天前
|
开发工具 git
将本地项目上传到svn服务端和git
将本地项目上传到svn服务端和git
34 0
|
6天前
|
存储 前端开发 开发工具
git clone -mirror 和 git clone 的区别
git clone -mirror 和 git clone 的区别
|
6天前
|
开发工具 git 开发者
百度搜索:蓝易云【Git:Rebase和Merge之间的区别】
综上所述,Rebase和Merge在代码合并方面具有不同的特点和用途。根据具体的情况和个人偏好,选择适合的合并方式能够更好地管理和组织代码。
47 0
|
6天前
|
前端开发 开发工具 git
git rebase 和 git merge的区别?以及你对它们的理解?
git rebase 和 git merge的区别?以及你对它们的理解?
76 1
|
6天前
|
存储 安全 开发工具
快速入门安装及使用&git与svn的区别&常用命令
快速入门安装及使用&git与svn的区别&常用命令
110 0
|
6天前
|
存储 网络协议 Ubuntu
Linux环境下的SVN服务器搭建并结合内网穿透实现远程连接
Linux环境下的SVN服务器搭建并结合内网穿透实现远程连接
|
6天前
|
Ubuntu 安全 网络安全
百度搜索:蓝易云【Ubuntu系统SVN服务器搭建教程】
现在,你已经成功在Ubuntu系统上搭建了SVN服务器。其他用户可以通过SVN客户端连接到你的SVN服务器,进行代码版本管理和协作开发。注意,为了安全起见,建议配置SSL加密以保护数据传输。
41 1