SVN在客户端和Linux系统的常见操作

1.1 TortoiseSVN客户端常见操作指令

1.1.1 客户端常见图标

在这里插入图片描述
在这里插入图片描述

1.1.2 SVN Checkout[1]

是将SVN服务器的上的项目文件检出到本地工作副本,尤其是我们第一次从SVN上拉取版本和分支的时候会经常用到
(1)进入你想要拉取的本地文件夹目录,点击鼠标右键,选择“SVN Checkout”
在这里插入图片描述
(2)在弹出的对话框内,输入远端SVN的地址,以及本地要保存的目录,如果你想checkout某个具体版本,还可以在“Revision”里进行设置
在这里插入图片描述
在这里插入图片描述
(3)如果是第一次使用,可能会提示如下信息,告诉你的证书保存的时效性,我们选择上一项,永久保存。
在这里插入图片描述
(4)输入你的SVN用户名和密码,如果需要永久保存认证信息,可以勾选下方的“save authentication”
在这里插入图片描述
(5)此时,如果各项信息无误,SVN就会自动从远程服务端下载项目代码。
在这里插入图片描述
(6)下载完毕后,你就在本地目录发现你下载的项目代码。
在这里插入图片描述

1.1.3 SVN Update

将当前本地目录及其子目录下的所有文件都更新到最新版本

1.1.4 SVN Commit[2]

将代码提交到远程服务端
(1)选中需要更新的代码文件夹或目录,点击右键,选择“TortoiseSVN”–“Add”。
在这里插入图片描述
(2)此时SVN客户端会自动帮你识别出已经变更过的代码文件,可以根据自己的需要选择是否需要上传。
在这里插入图片描述
(3)选择“Ok”后会提示所有的文件已经“Add”成功了。
在这里插入图片描述
(4)再次回到第一步的目录,点击右键,选择“SVN Commit”
在这里插入图片描述
(5)在弹出的对话框的“Message”框内输入你此次代码变更的备注。
在这里插入图片描述
(6)点击“Ok”按钮,此时SVN开始将变更文件代码上传到SVN远程服务端

在这里插入图片描述
(7)再次会到刚才操作的目录,我们发现文件夹的状态标识也变成绿色的小勾了,此时代码已经提交成功了。
在这里插入图片描述
(8)提交完成后若想查看是否提交成功,可以在提交目录下右键 -> TortoisesSVN -> show log 查看代码提交记录,有提交记录即为提交成功。
在这里插入图片描述

1.1.5 SVN Delete

该删除是指从版本库中进行删除
选中需要删除的文件或文件夹,右键在TortoiseSVN中选择“Delete”命令
对于不需要删除的文件取消打钩
在这里插入图片描述

1.1.6 恢复到指定版本

工作副本右键->TortoiseSVN->show log->右键选择所需要的版本号->复原到此版本
在这里插入图片描述

1.1.7 版本融合

选择工作副本->TortoiseSVN->Merge
在这里插入图片描述

1.1.8 撤销本地所有修改

操作需要在commit操作之前使用,
在这里插入图片描述

1.1.9 协同办公

当多个人使用svn时,会出现对同一份文档有多个人进行编辑,然后将每个人编辑的内容融合在一起,这时在编辑时需要先更新最新的文件,然后将该文件进行锁定,在更新完内容之后再通过commit进行上传。

  1. SVN Update 更新文档到最新版本
  2. 锁定将要更新的文档:TortoiseSVN->Get lock
  3. 修改目标文件内容
  4. SVN Commit
  5. TortoiseSVN->Release lock

1.1.10文件冲突

1、文件冲突简介
指团队协同工作时,当多位团队成员同时修改同一个文件,造成本地文件与SVN系统中的文件版本不一致,而导致无法提交的情况。
在这里插入图片描述
遇到冲突时,文档显示为:
在这里插入图片描述
2、解决方式
面对文件冲突,我们可以选择以下两种方式解决冲突。
(1)使用工具解决冲突
1)选择文件-> TortoiseSVN->Edit conflicts

在这里插入图片描述
2)对比两个版本的文件,解决冲突
工具中会列出两个版本冲突的部分,并让我们选择使用哪个版本的内容
在这里插入图片描述
3)选择文件-> TortoiseSVN->Resolved
在这里插入图片描述
(2)使用revert放弃所做的修改
在这里插入图片描述

1.2 在linux系统下使用命令行进行操作

1.2.1 将文件checkout到本地目录

//[]中的内容可选
svn checkout [-r svn版本号] path

//示例:
svn checkout –r 2333 http://***/***/test
svn checkout http://***/***/test

1.2.2 向版本库中添加新的文件

svn add [filename]  //将[filename]纳入到版本控制中
svn add [folder]  //向版本库中添加文件夹,并将该文件夹下未纳入版本控制的文件一并纳入控制
svn add [folder] –non-recursive //只把目录纳入控制,而不想把所有该目录下的文件纳入控制,可以增加–non-recursive
svn add *      //一次性增加所有,这种情况会排除non-recursive的目录下的文件
svn add * --force //一次性增加所有,包括non-recursive的目录下的文件
svn add . –no-ignore –force  //遍历当前目录下所有未添加的文件,添加到版本控制中

1.2.3 将改动的文件commit到版本库

svn commit (-N) –m “log message” [filename]
//-N:只提交目录名字,不提交子目录及子目录下的内容
//示例:
svn commit –m “add test.cpp” test.cpp

1.2.4 加锁与解锁

svn lock -m “LockMessage“ [--force] PATH 
svn unlock PATH
//示例:
svn lock -m “lock test file“ test.cpp
//修改结束后解锁
svn unlock test.cpp

1.2.5 查看文件或目录状态[3]

//目录下的文件和子目录的状态,正常状态不显示
//【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】M状态一般比较多
svn status path
//显示文件和子目录状态
//第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
//svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝
svn status -v path

1.2.6 查看文件详细信息

svn info path
//示例:
svn info test.cpp

1.2.7 比较版本差异

//将修改的文件与基础版本比较
svn diff path
示例:
svn diff test.cpp
//对版本m和版本n比较差异
svn diff -r m:n path
//示例:
svn diff -r 200:201 test.cpp

1.2.8 将文件更新到某个版本

svn update [-r version path/filename]  //[ ]中的内容为可选项
//示例:
svn update  //默认将当前目录以及子目录下的所有文件都更新到最新版本
svn update –r 200 test.cpp //将版本库中的文件test.cpp还原到版本200
svn update test.cpp  //将test.cpp文件更新到最新

1.2.9 将两个版本之间的差异合并到当前文件

svn merge -r m:n path
//示例:
//将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下
svn merge -r 200:205 test.cpp

1.2.10 删除文件

svn delete [filename]
//示例:
svn delete test.cpp   //删除test.cpp
svn ci –m “delete test.cpp”  //提交更改

1.2.11 查看更新日志

svn log [path]
//示例:
svn log test.cpp   //查看这个文件所有的修改记录和版本号变化

1.2.12 帮助

svn help
//示例:
svn help ci

参考链接

[1] https://jingyan.baidu.com/article/d621e8da10560f2864913f76.html
[2] https://www.cnblogs.com/ghjbk/p/7412916.html
[3] https://www.cnblogs.com/zhuwei0901-yanwu/p/9530697.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值