[关闭]
@weidong 2017-11-02T10:02:12.000000Z 字数 2196 阅读 654

版本管理课程

版本管理


版本控制


开始使用(SVN)

想要使用版本控制,需要用到两个软件

今天只介绍SVN工具的用法,如果有兴趣查看服务端配置,请看下面链接:
http://www.cnblogs.com/xing901022/p/4399382.html

如何安装TortoiseSVN(小乌龟)

https://www.zybuluo.com/mdeditor#830175 密码 0123456

下载代码

在想要下载代码的位置,右键单击SVN Checkout
image.png-34kB

填写版本库URL,以及本地代码文件夹名称。可以选择全部检出,或者根据特定的版本号检出。
image.png-37.6kB

输入用户名密码
image.png-57.6kB

检出完毕后,当前文件夹下多出了一个.svn文件夹和文件
image.png-16.7kB

此时,所有文件图标变成【绿色钩钩】,表示文件为正常状态(无任何改动)


对文件进行修改,并提交

修改代码并提交,打开文件夹里面的【测试文件.txt】
添加一行数据,保存并关闭
image.png-14.2kB

此时文件图标变为红色!,表示文件为有改动状态,通过查看图标,可以很容易地看出那些文件从你上次更新工作复本被修改过,且需要提交。
image.png-6.2kB

将刚刚修改的文件提交到服务器,选中刚刚修改的文件,右键,选SVN Commit
image.png-63.7kB

填写提交信息,点击ok
image.png-67.8kB

提交成功,此时已经将本地的修改提交到了服务器
image.png-35.2kB


将文件添加到版本库

在刚刚检出的文件夹下添加一个文件【Test.txt】,此时发现文件图标是蓝色的?号,表示该文件没有被加入版本控制。
image.png-8.3kB

此时需要将文件添加到版本库,选中文件右键,选TortoiseSVN -> Add
image.png-62.6kB

文件添加到版本库后,文件图标改为蓝色+(加号),表示该文件已经已经被加入到版本控制了,但是还未提交。
image.png-8.2kB
此时只需要将文件提交即可。

image.png-34.2kB

提交成功

image.png-48.3kB

image.png-8.8kB


查看提交日志信息

修改Test.txt 文件,并提交
image.png-9.2kB
填写提交日志信息
image.png-17.9kB
查看日志信息
image.png-43.1kB
此时双击第二个红框里面的Test文件,则出现左边为文件上一个版本的状态,右边为文件当前(最新)版本的状态,因上一个版本Test文件没有任何内容,所以为空。
image.png-106.2kB


冲突解决

什么是冲突?
两个人修改了相同文件相同位置,一个人提交后,另一个进行更新,此时这个人如果和上一个人修改了相同的地方,那么更新后文件就会出现冲突

模拟冲突,本机新建两个文件夹,模拟不同的人

image.png-11.4kB

两个文件夹分别下载服务器最新的文件,如下图

image.png-19.8kB

进入user1文件夹下,修改Test.txt文件,并保持提交
image.png-30.2kB

此时进入user2文件夹,打开Test.txt文件,也添加一行数据,保持并提交
image.png-28kB

提交会出现如下错误,表示服务器有更新的版本,需要更新才可以提交
image.png-39.3kB

点击ok,会弹出
image.png-21.6kB

点击update

image.png-36.4kB

此时版本库就会出现冲突了,因为user1在Test.txt文件的第二行添加了数据,user2也在第二行进行了修改,两个同时修改了一个文件的同一个地方,所以就会出现冲突

image.png-16.6kB

如果产生冲突,会生成如上3个文件
image.png-28.7kB

打开Test.txt文件,会看到如下
image.png-16.9kB
其中,<<<<<<<<.mine .....=======之间的代码是你自己的,而======......>>>>>>>.r5是别人与你冲突的代码部分

解决冲突就是将两份不同的代码合并到一份里面,选择冲突的文件 -> 右键Editconficts:这种方法需要冲突双方经过协商之后将代码更改统一之后再提交。不仅解决了冲突而且还保证了代码是正确的,因为只有一方的代码被提交.

image.png-114.7kB

红色的部分是冲突代码:theirs表示当前服务器端最新的代码,Mine表示自己修改后的代码,Merged表示合并后的代码。点击红色后右键选择:use this text block就可以将该部分代码作为合并后的代码

image.png-112.9kB

解决冲突,将有冲突部分的代码合并到一起
image.png-19.7kB


恢复代码到某个版本

当发现新提交的代码有问题,然后想将某个旧的版本作为最新的版本时,可以使用回滚。

先更新代码到版本库最新的状态,在查看日志信息界面,选中某个版本右键,选 Revert to this revision 即可
image.png-55kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注