美文网首页
SVN个人小结

SVN个人小结

作者: 话说我是认真的 | 来源:发表于2018-04-25 16:18 被阅读0次

    之前版本控制用的是Git,然后新项目的开展,用的是SVN。这使得对SVN八窍通了七窍的我很难不舒服。同事告诉我了一些在webstorm上面的基本用法,但是用命令行习惯的我,觉得还是用命令行比较习惯。终于我决定学习一下SVN的用法。
    其实,SVN在一定程度上面和Git还是很相似的,一些merge,commit,等等的基本用法还是相通的,不一样的可能就是SVN没有push以及pull的操作。
    1.首先,我们先来一些SVN的基本用法:

    # 万能方法
        svn help
    # 查看当前更改的文件
        svn status(st) 
    # 将文件从远程仓库拷贝到本地的工作目录
        svn checkout(co) 你需要copy的远程仓库地址
    # 往版本库中添加新的文件
        svn add file
    # 提交代码
        svn commit(ci) -m"your comments"  文件名
    # 更新代码
        svn update(up) 更新的文件或者文件目录 如果不写,默认将当前目录更新到最新状态
    # 查看本项目的信息
        svn info
    # 查看指定文件的信息
        svn info filename
    # 查看本项目的日志
        svn log
    # 查看指定文件的日志
        svn log filename
    # 查看分支的从哪个版本来的
    svn log --verbose --stop-on-copy | tail -10
       M /tags/version3.3.0(0417)/www/js/app.config.js
    app.config.js 添加 年月日字段: APP_UPDATEVERSION
    ------------------------------------------------------------------------
    r1034 | XXX | 2018-04-17 11:15:26 +0800 (二, 17  4 2018) | 1 line
    Changed paths:
       A /tags/version3.3.0(0417) (from /trunk:1033)
    ------------------------------------------------------------------------
    # 比较差异
        svn diff(di) path(将修改的文件与基础版本比较)
        svn diff -r m:n path(对版本m和版本n比较差异)
    
    image.png

    使用svn update在开始工作时和提交之前先做一次更新是一个良好的习惯。
    假如在我们修改工作目录的同时,有人也更新了同样的文件并已经提交到远程仓库,那我们在更新时有可能就会遇到冲突(conflict)。
    可以设定’accept’参数,指定’working’, ‘base’,

        (p) postpone: 暂时推后处理
        (df) diff-full:       把所有的修改列出来,比比看
        (e) edit:           直接编辑冲突的文件
        (mc) mine-conflict:    用你的修改
        (tc) theirs-conflict:   用别人的修改
        (s) show all options:  显示其他可用的命令
    

    我们可以选择以上命令中的任何一个在解决冲突,一般选择p的话,后续要用svn resolve标识已解决冲突的文件。


    2.分支以及标签的管理:

    # 创建分支:
        svn copy(cp) trunkUrl branchesUrl -m"create branches"
    # 删除分支:
        svn delete(rm/remove) branchesUrl -m "delete branches "
    # 创建tag:
        svn copy(cp) trunkUrl tagUrl -m"create tag"
    # 删除tag:
        svn delete(rm/remove) tagUrl -m "delete tag"
    # 分支合并到主干 注意:此时需要在trunk下进行
        svn merge -r 1069(分支创建时的版本):1092(分支现在的版本) branchesUrl
    # 查看当前Branch中已经有那些改动已经被合并到Trunk中
        svn mergeinfo svn://branch/path
    # 查看Branch中那些改动还未合并
        svn mergeinfo branchesUrl --show-revs eligible
    # 主干合并到分支 注意:此时需要在分支下进行
        svn merge -r 1069(分支创建时的版本):25(trunk现在的版本) trunkUrl
    # 切换分支
        svn switch (sw) 要切换的地址
    

    刚开始用命令行的SVN操作来管理版本,这些只是基础操作,以后,用到的会及时更新。

    相关文章

      网友评论

          本文标题:SVN个人小结

          本文链接:https://www.haomeiwen.com/subject/cvuelftx.html