一、 写这篇博客的意图
工作中刚刚接触svn用于提交代码,感觉自己掌握对svn的使用还不够熟悉,所以写了一篇博客来梳理一下svn的使用(也是因为周末太无聊了,所以写总结)
二、内容
一 、什么叫SVN
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。 ------百度百科
二、 为什么要使用SVN
简单来说就是一伙程序员(A B C D),程序员A修改了文件,而程序员B也修改了文件,两个人更新文件的时候,肯定会出现以下问题:
1. 一个人将另一个人的提交的文件给覆盖掉
2. 程序员A更新了文件,但是B获取文件之后,A又更新了文件,导致B获取的文件就会变成"脏数据"
3. 万一更新了一个错误的文件,而没有备份,导致像甩锅都找不到人接
如果不使用Svn进行控制,就会导致多人协作修改代码出现冲突
三、如何使用SVN
1、下载
下载地址:
https://tortoisesvn.net/downloads.html
下载就不描述了
2、创建本地版本库
英文的应该为 create repository here
创建一个版本库,一般都会创建好相应的版本库(就是源码统一存放的地方)。
3 、Cheeck out 拉取代码
就是从创建的版本库中“下载"下来相应的代码
效果如图
4、修改代码
按照需求在拉去的代码上进行修改,例如
此时文件图标就会变成红色感叹号,标识本地代码和版本库中的代码不一致,也就是说你在本地进行了修改。
黄色感叹号代表了冲突,也就说使用了你修改的代码和别人的代码冲突了。你修改这个文件中的代码,同样的别人也对这个文件代码进行了修改,而且别人抢先在你之前进行了提交,这时候你再提交就会提示冲突并且不允许你提交,这时候你就需要判断一下,如果你修改的没啥用,还不如用别人的代码,就还原自己的代码然后再update.如果你和别人的代码两个都是部分有效,这时候就合并别人的代码然后提交。
5 提交代码 (commit)
这时候一般需要先更新(update),然后再commit保证不会覆盖别人的代码
这时候就会再show log中查看到当前的文件的修改日志(需要登录自己的账号)
三 、其他命令
1 ADD
目的:将新增的文件提交到服务器中
操作步骤:
1 右键TortoiseSVN->add
2 使用commit提交相关的文件
2 Delete
目的:删除版本库中对应的文件
1 右键TortiseSVN->Delete
2 Commit
3 update to version
有时候我们提交了错误的代码,但是想临时回复到某个版本,那么就需要使用update to version
操作步骤:
右键 tortoisesvn-》Update to revision -》选择相应的版本->OK
效果:
但是这只是临时的,而且svn并不会提示你文件发生的了改变,他还是绿的,只有你进行了修改,才会提示你文件被修改了,所以是临时的。
而revert to version 则是永久回复到某个版本,这时候系统会提示你被修改了。
总结:
update to version 适用于你修改了代码而且并没有提交自己的修改,但是发现自己写错了,使用update to version。
revert to version 适用于你修改了代码,但是提交了代码,这时候想会到某个版本,这是就需要使用 revert to version 。然后再commit,别人就会获取到你revert 的那个版本。
---暂存于 2020-11-7-17:00