23-1 SVN(版本控制系统)基本使用教程
1 TortoiseSVN的基本使用
SVN 的一些概念
- repository(源代码库):源代码统一存放的地方
- Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
- Commit(提交):当你已经修改了代码,你就需要Commit到repository
- Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更
日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。
如果两个程序员同时修改了同一个文件呢, SVN 可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN 会提示文件 Conflict, 冲突,需要手动确认。
1.1 浏览仓库
弹出如下界面:
点击ok,要求输入用户名和密码
1.2 checkout 检出
Checkout 操作是用来从版本库创建一个工作副本。工作副本是开发者私人的工作空间,可以进行内容的修改,然后提交到版本库中。
Checkout 操作将SVN仓库的代码烤到本地,比如你现在参与一个团队项目,项目代码在你之前肯定已经写了很多了,你可以通过checkout项目代码,获得整个项目。
进入如下界面:
其中URL我可以在SVN服务器获取到。
点击ok,弹出如下界面。
点击ok,此时桌面多出一个图标。
此时,本地的lucky目录与svn中的lucky仓库关联上了。
注意事项:
.svn这个隐藏目录记录着两项关键信息:工作文件的基准版本和一个本地副本最后更新的时间戳,千万不要手动修改或者删除这个.svn隐藏目录和里面的文件!!,否则将会导致你本地的工作拷贝(静态试图)被破坏,无法再进行操作。
TortoiseSVN图标介绍
(1)一个新检出的工作复本使用绿色的对勾重载,表示Subversion状态正常。
(2)在你开始编辑一个文件之后,状态就变成了已修改,而图标重载已变成了红色感叹号。通过这种方式,你可以很容易地看出那些文件从你上次更新工作复本被修改过,且需要提交
1.3 执行变更
当检出之后,你就可以做很多操作来执行变更。编辑是最常用的操作。你可以编辑已存在的文件,例如进行文件的添加/删除操作。
你可以添加文件/目录。但是这些添加的文件目录不会立刻成为版本库的一部分,而是被添加进待变更列表中,直到执行了 commit 操作后才会成为版本库的一部分。
同样地你可以删除文件/目录。删除操作立刻将文件从工作副本中删除掉,但该文件的实际删除只是被添加到了待变更列表中,直到执行了 commit 操作后才会真正删除。
Rename 操作可以更改文件/目录的名字。"移动"操作用来将文件/目录从一处移动到版本库中的另一处。
<1>add操作
在svntest项目文件下,新建一个b.txt文件,提交到版本库的方法如下2种:
1. 先提到变更列表中,再commit到配置库中,选择新增文件,右键SVN菜单执行“Add“操作提交到”变更列表中”,然后右键SVN菜单执行”SVN Commit”提交到版本库中。
2. 不提交到变更列表中,而是直接commit配置库中,选择该文件,右键svn菜单执行”SVN Commit”操作。
打开桌面上的本地lucky文件夹
此时会出现下图
这就说明了这个ItemsDao.java文件已经添加到了变更列表中
<2>delete操作
标记删除操作,本地文件会删除,我们需要进行提交,才能真正从服务器删除
弹出如下界面:
<3>commit操作
将ItemsDao.java文件添加到svn服务器
此时弹出如下界面:
提交结果图:
点击ok即可。
<4>查看当前日志
弹出如下界面:
<5>update 操作
顾名思义,update 操作是用来更新版本库的。这个操作将工作副本与版本库进行同步。由于版本库是由整个团队共用的,当其他人提交了他们的改动之后,你的工作副本就会过期。
让我们假设 Tom 和 Jerry 是一个项目的两个开发者。他们同时从版本库中检出了最新的版本并开始工作。此时,工作副本是与版本库完全同步的。然后,Jerry 很高效的完成了他的工作并提交了更改到版本库中。
此时 Tom 的工作副本就过期了。更新操作将会从版本库中拉取 Jerry 的最新改动并将 Tom 的工作副本进行更新。
操作方法如下:
更新本地代码与SVN服务器上最新的版本一致,只要在需要更新的文件夹上点击右键或者在文件下空白处点击右键,选择”SVN Update” (获取指定版本中的内容,点击右键执行SVN菜单中的“Update to reversion“),就可以了。
弹出如下界面:
<6> SVN还原(SVN Revert)
右击想要回退的文件或者文件夹,在TortoiseSVN弹出菜单中选择”Update to reversion…” 然后会弹出一个窗口,如下:
比如说我们要回退到第1个版本只需要在Revision中填写相应的版本号,然后点击ok即可。
<7>检查修改(Check for modifications)
此功能可以显示你所做的修改有哪些还没有提交的,此功能不光能看到对文件的修改变化,所有的变化都能看到,包括增加文件或者目录,删除文件或者目录,移动文件或者目录等,如果你点击了检查版本库,那你还可以看到版本库里的改动,既别人提交了哪些文件的改动,你还没更新到本地,如下:
<8>Import将本地资源导入到svn服务器
<9>冲突问题与解决
多个用户同时操作同一个文件时,就可能产生冲突情况。
2.IDEA下 SVN 配置与使用
(1)IDEA下svn配置
前提是我们的电脑上已经安装了TortoiseSVN.
(2)share project
弹出如下界面:
进入如下界面:
弹出如下界面:
点击ok,等待上传完成。
上传完成后,顶部菜单栏会多出几个按钮。
上图5个按钮的作用:
<1>Update Project 更新项目
<2>Commit changes 提交项目上所有变化文件
<3>Compare with the Same Repository Version 当前文件与服务器上该文件通版本的内容进行比较。如果当前编辑的文件没有修改,则是灰色不可点击。
<4>Show history 显示当前文件的历史记录
<5>Revert 还原当前被修改的文件到违背修改的版本状态下
参考文献:https://www.cnblogs.com/0zcl/p/7309766.html