GIT和SVN的区别
摘要
从老早之前就听说过版本控制的概念,但一直不明白所以然。平时在开发的过程中,使用版本控制可以给我们带来很多好处,最重要的一点是它可以让多人协作开发代码。之前接触到的都是使用GIT进行版本控制,但入职的这一家公司使用的却是SVN进行代码管理,并且使用了一个免费的开源的客户端TortoiseSVN来进行一些更新,提交操作。
GIT
- 概念
GIT是目前世界上最先进的分布式版本控制系统(没有之一)。?当这个系统的任何一个客户端出现问题的时候,都可以从另外的客户端(即使服务器挂了)获取所有的代码。
- 基本命令
- 创建仓库
git init
- 添加文件到缓存
git add .
- 查看项目当前状态
git status
- 将缓存区内容添加到仓库
git commit -m "提交信息"
- 创建分支
git checkout -b (branchname)
- 查看当前分支
git branch
- 切换分支
git checkout (branchname)
- 拷贝一个GIT仓库到本地
git clone [url]
SVN
- 概念
SVN又叫做集中式版本控制器。严重的依赖服务器端,当服务器端无法使用的时候,版本控制也就无法再使用了。
- TortoiseSVN基本使用
- 安装
下载地址https://tortoisesvn.net/downloads.html,另外页面里含有语言包补丁的下载链接,可根据个人需要下载其他语言。下载完语言包之后,需要进入客户端进行语言的切换设置。
- 检出
在一个指定的位置,点击鼠标右键选择【SVN 检出】,在弹出对话框内输入repository(版本库)的位置和Checkout directory检出目录,点击确认按钮就可以取得指定的档案及目录了。
- 更新
在想要更新的文件上或文件所在目录下单机鼠标右键,选择【SVN 更新】,则将新文件更新到仓库中。
GIT和SVN的区别
- GIT是分布式的,而SVN是集中式的。
- GIT把内容按元数据方式存储,而SVN是按文件:因为GIT目录是处于个人机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。?
- GIT分支和SVN的分支不同:SVN会发生分支遗漏的情况,而GIT可以同一个工作目录下快速的在几个分支间切换,很容易发现未被合并的分支,简单而快捷的合并这些文件。
- GIT没有一个全局的版本号,而SVN有。
- GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
集中式和分布式的区别
- 集中式版本控制系统:版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。?集中式版本控制系统最大的毛病就是必须联网才能工作。
- 分布式版本控制系统:分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
- 分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
总结
因为公司项目已有现有骨架和SVN仓库,所以平时的操作也主要集中于检出和更新上。另由于公司规模比较小,协同开发的人数并不多,可控的范围也比较大。
GIT和SVN的区别
原文:https://www.cnblogs.com/rainslight/p/12708809.html