找回密码
 立即注册
查看: 590|回复: 0

[简易教程] 【Unity 教程】用SVN做Unity项目的版本控制(实现多人协作开发) (1) 什么是版本控制?

[复制链接]
发表于 2020-12-30 10:27 | 显示全部楼层 |阅读模式
第一次写教程,我当时希望能够以简单易懂的语言写这篇教程,再加上很多东西都是我自己的理解,所以,如果哪里有错误,希望大家能指出来呢,非常感谢喵!
[提示:看不懂没关系,絮大王很快就会出视频教程的!!!文章写起来很累,累爆炸了……而且视频应该能让大家更好的理解吧……总之,我会尽快出视频哒!]
[另外最后我也会给出这个教程的PDF文档,大概有60多页吧……]

目录

(1) 什么是版本控制?为什么要用SVN实现版本控制?
(2) 安装SVN服务端
(3) 安装SVN客户端
(4) 上传新项目到SVN服务端
(5) 从SVN服务端下载项目到本机
(6) 上传版本
(7) 更新版本
(8) 实际运用:在Unity项目中使用SVN做版本控制


什么是版本控制?

首先我们要了解什么是版本,我们在玩游戏的时候,经常会遇到版本更新。比如出了个新英雄,可能就是一个新版本,修复了什么BUG,可能又是一个版本。
那么什么是版本控制呢?
版本控制简单来说就是管理版本(如果你实在不能理解“版本控制”这四个字,你可以把文章里所有的版本控制理解为“版本管理”)。
这里的版本不是上面所说的游戏版本,而是工程版本(项目版本)。比如修复了工程中的一个BUG,可能就是一个新版本;比如修改了某个脚本,可能又是一个新版本。
我们可以利用版本控制的软件,来管理我们的每一个版本。
具体来说,我们可以利用版本控制软件上传当前的版本、恢复之前的某个版本。
重要的是,你可以利用版本控制软件,实现几个人同时对一个工程(项目)进行操作!


举个例子,现在有个项目是你和其他3个程序员在做,如果你这边修改了1个脚本,你需要让其他程序员也同步你这个脚本, 那么你需要:把这个脚本文件传给其他的程序员(用U盘或者QQ等传输工具),其他程序员下载你传的这个文件后,再替换到他们的工程文件当中。
是不是很麻烦?


如果利用版本控制软件,你只需要在你的电脑上,点击[上传]按钮,软件就会自动识别你做的修改,然后记录下来这些修改,并把修改过的文件上传。
如果,你的同事想同步你所做的修改,他们只需要在他们的电脑上,点击[更新]按钮。这样,软件就会自动识别【你同事的版本】和【你上传的版本】 之间的区别,然后软件会告诉你的同事:哪些文件被改动了。
此时,你的同事可以选择一键下载所有被改动过的文件,或者是自己选择要下载的文件。
更棒的是:如果你的同事更新完后,发现你做的东西完全不能用,还一堆BUG!那么他可以把项目一键恢复到之前的某个版本。
是不是很方便?


这里有一幅我自己画的漫画,希望可以帮助大家理解什么是版本控制……


为什么要用SVN实现版本控制?

其实在Unity上实现版本控制有很多办法,为什么我们要选择用SVN软件来实现Unity的版本控制?我们来对比下其他方案吧!
1. Unity自带的版本控制
Unity也内置过 版本控制的功能,叫做Asset Server。
Asset Server真的是爆炸好用!谁用谁知道!
但是在Unity5.6版本以后,Unity官方就去掉了这个功能,改成了新的Unity Teams。
现在Unity自带的版本控制功能(Unity Teams) 已经完全不是以前的那种了,新的版本控制有以下的问题:
1. 要收费(费用很便宜,每个月只要9美元,我已经付费6个月了)
2. 不支持本机、不支持局域网,必须要用它提供的服务器
3. 因为是国外的服务器,所以在国内使用还是会很慢的!(真的超级慢,让人崩溃)
优点当然很明显:因为是Unity内置的功能,所以直接使用就可以!
(顺带一提,Asset Server的内核用的是SVN哦!)

2. 版本控制软件 之 Subversion
Subversion是一个知名的版本控制软件,我们一般简称它为SVN。
使用SVN你可以:
1. 在自己的电脑上进行版本控制(常用于个人项目)
2. 也可以在局域网中进行版本控制(常用于公司)
3. 也可以在互联网中进行版本控制(常用于异地合作)
而且SVN不收费!有中文支持!而且还有Unity的插件支持!


3. 版本控制软件 之 Git
我觉得使用SVN和使用Git其实都可以。
但这里我选择使用SVN,我自己用了SVN两年多了,没觉得有任何不好的地方。
如果真要在SVN和Git当中选一个,这里引用下我从百度经验上看到的文章,大家可以做个参考(也欢迎讨论哒):
原文地址:https://jingyan.baidu.com/article/676629976401a154d51b8430.html
SVN更适用于项目管理, Git仅适用于代码管理。
SVN对中文支持好,操作简单,使用没有难度,美工人员、产品人员、测试人员、实施人员都可轻松上手。使用界面统一,功能完善,操作方便。
Git对程序源代码进行差异化的版本管理,代码库占极少的空间。易于代码的分支化管理。但是Git也有缺点,它不支持中文,图形界面支持差,使用难度大。不易推广。



一些想说的话
你好~感谢你能看到这里~
絮大王是非常非常喜欢大家在评论区里交流哒~也会让我学到很多~
但是这里我有些话想说:如果你还是个可爱的小萌新,还不那么了解版本控制的话,请一定不要认为SVN是个过时的软件哦~
评论区里有个知友说的很对:SVN是个很老的软件,它是十几年前的软件。
这是个事实。
但是我很害怕你因为不了解版本控制,从而对这句话产生了误解,所以我真的很想告诉你:SVN它很老了,但是它并不是一个过时的软件。
SVN功能强大,如果我们只是因为它是十几年前的软件,就去选择Git,我觉得是有问题的。我们要选择哪一个,应该是因为它的功能、它的特色,而不是它发布的时间。
其实,在国内,大部分游戏公司都在用SVN做版本控制 (数据来源于我的朋友和我加的群)


SVN非常简单,而且我可以有信心讲懂它。
但Git的教程我看了很多,几乎所有的教程都会说:“你不用知道我输入的是什么,你只用照着我的输就可以了。”
所以我至今还没弄懂Git……


但是我想说的并不是SVN好用,Git难用。
SVN和Git更像是你可以选择的两个工具,你觉得哪个更适合你,就用哪个就好。
并不存在SVN是过时的,Git就高大上的情况。


另外,Git的教程很多哒,如果大家觉得SVN不好用,那么在网上可以搜索到很多Git的教程。
谢谢大家!能跟大家在评论区里交流,真的很开心哒~




我的博客
xudawang's blog - xudawang's Unity相关的博客

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-1-16 17:01 , Processed in 0.200757 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表