公司用SVN管理项目代码,最近总结了SVN比较实用的命令,发篇博客跟大伙分享下,如有什么问题或者需要补充的,可以提出来一起探讨研究。
一、文件标识意思
A:add,新增
C:conflict,冲突
D:delete,删除
M:modify,本地已经修改
G:modify and merGed,本地文件修改并且和服务器的进行合并
U:update,从服务器更新
R:replace,从服务器替换
I:ignored,忽略
? :文件、目录或是符号链item不在版本控制之下
! :文件、目录或是符号链item在版本控制之下,但是已经丢失或者不完整,这可能因为使用非Subversion命令删除造成的,如果是一个目录,有可能是检出或是更新时的中断造成的,使用svn update可以重新从版本库获得文件或者目录,也可以使用svn revert file恢复原来的文件。
I :忽略文件、目录或是符号链 (svn status --no-ignore 可以查看到)
item不在版本控制下,Subversion已经配置好了会在svn add、svn import和svn status命令忽略这个文件,关于忽略文件,见“svn:ignore”一节。注意,这个符号只会在使用svn status的参数--no-ignore时才会出现—否则这个文件会被忽略且不会显示!
注意:
1、当双方都删除了内容,但是对方删除的比较少。小明提交,小黑Update,文件可能显示 G 状态,这时就双方讨论着来修改,不然小黑不理直接提交,可能会把小明需要的代码删除掉(小明在原来代码删除修改提交后,小黑Update,文件就会显示这种状态。新增代码则不会)
2、忘记有哪些冲突,请使用命令svn resolve查看:如果没有输出说明冲突已解决
二、命令说明
1、拉取项目
svn co 代码源路径
2、提交修改点
svn ci -m "修改说明"
3、更新远程代码到本地代码
svn up
4、忽略SVN全局文件
修改 /用户名/.subversion/config文件
打开 global 注释 ,并添加如下:
global-ignores = *.o *.lo *.la *.al .libs *.so .so.[0-9] *.pyc *.pyo *.rej .DS_Store *.xcuserstate *.xcworkspace .xcuserdatad .xcscmblueprint ~ ## .# ..swp
5、创建分支
svn cp -m "操作说明" 源分支链接 新分支链接路径
6、merge 主分支代码到其他分支
svn merge 代码源路径链接
例如:
svn merge https://github.com/IOS6/GCDXin
7、回滚代码到修改前的状态
svn revert -R .
svn revert --depth=infinity . ( . 代表当前文件夹) => 忽略整个文件夹的修改
8、合并分支到主干
进入主干目录执行:
svn merge --reintegrate 分支链接
9、删除分支
svn delete 分支地址 -m '操作描述'
10、查看路径下的文件目录
svn list 链接路径
例如:
svn list https://github.com/IOS6/GCDXin
11、查看当前代码库路径
svn info
svn info 文件路径
12、查看日志
12.1、查看项目日志
svn log
svn log -l 日志条数
svn log -l N -v => 查看每条日志提交详情
12.2、查看文件日志
svn log 文件路径
svn log -l N -v 文件路径
13、使用以下语句进行版本回退
svn update -r 版本号
比如:去往版本号为14119的版本:svn update -r 14119
在替换过程中,有可能会出现冲突,svn会给出处理的快捷键:冲突提示.png
选择“tf”,全部以服务器的代码为准。
这样就可以回退到相应的版本了。
14、解决完冲突需要标记为已解决
14.1、命令:svn resolve --accept working XXX.m
14.2、xcode12 之前,可以在xcode文件右击标记
15、SVN 帮助
svn help <- 全部功能选项
svn help ci <- 具体功能的说明
16、比较差异
svn diff 文件名 (文件名是当前目录的相对路径)
svn diff -r 修正版本号m:修正版本号n 文件名
例子:
svn diff test.php<- 将修改的文件与基础版本比较
svn diff -r 200:201 test.php<- 对 修正版本号200 和 修正版本号201 比较差异
17、删除文件
svn delete svn://路径(目录或文件的全路径) -m “删除备注信息文本”
18、更新文件
svn update(up)
svn update -r 修正版本 文件名
svn update 文件名
网友评论