多年的游戏项目开发工作经验中,接触了P4,Git等工具,但使用最多的工程库管理软件还是SVN。在程序,美术,策划等不同开发工种的协作中,是大家都比较能接受的。
为什么需要用到命令行操作,因为有这样一些场景,比如:无图形化界面的linux系统,自动化流水线等。当然了,在macOS也是合适的选择,虽然有如:Cornerstone和SmartSVN这些可视化工具的选择。
svn checkout
svn checkout svn://123.123.23.45/FolderA/FolderB
这里更安全的方式是使用ip,主机名可能会遇到无法解析的情况。
比如:局域网内的Mac电脑访问Win服务器
svn info
查看库的概要信息
svn up
svn up 拉取最新远程版本(当前目录下)
svn up folderAPath 更新指定文件目录
svn up fileAPath 更新指定文件
svn status
显示本地文件修改状态,常见的有:
- U 文件已更新
- M 已修改
- ? 未纳入版本控制 -- 需要add或delete或ignore
- C 冲突 -- 需要解决冲突
- ! 缺失 -- 需要delete或revert
- D 已删除
- A 已添加
- I 已忽略
等等
svn diff
查看修改信息
svn revert
svn revert fileAPath 还原fileA文件
svn revert -R folderAPath/ 还原文件夹folderA下的所有修改(递归所有子目录),当前文件夹使用./
svn delete
svn delete folderAPath 删除文件夹folderA
svn delete folderAPath --force 如果你已经手动删除了folderA,仍需要输入此行命令
svn ignore
svn propset svn:ignore folderAPath .
svn propget svn:ignore . 验证结果是否有效
svn commit
svn commit -m "提交说明" folderAPath folderBPath fileAPath 只提交指定文件夹/文件的修改内容,多个提交项,用空格隔开
其他备注
- 当文件夹目录或者文件本身名称中有空格时,需要用双引号""包裹