常用svn命令说明

SVN命令详解
 
    1、从SVN仓库中检索出代码到工作拷贝:
           # svn checkout https://svn.sinaapp.com/appname [workcopy]
           其中workcopy是可选的,如果不写workcopy,SVN会默认将appname做为workcopy。
 
           如果只检索某个版本:
           # svn checkout https://svn.sinaapp.com/appname/appversion [workcopy]
 
           只检索某个版本的某个目录:
           # svn checkout https://svn.sinaapp.com/appname/appversion/folder [workcopy]
 
    2、向SVN仓库提交代码:
           # svn commit -m "here is message"
 
    3、将本地文件添加到工作拷贝:
           # svn add something
           注:如果something为文件,svn会将这个文件添加到工作拷贝;如果something是目录,svn会将目录及里面的文件全添加到工作                      拷贝。something也可以是通配符*,这样会忽略已经添加过的文件。
 
    4、从工作拷贝中删除一个文件:
           # svn delete something
           注:如果something为文件,svn会将这个文件从工作拷贝中删除;如果something是目录,svn会将目录及里面的文件全部从工作                      拷贝中删除。
 
    5、直接从SVN仓库中删除文件:
           # svn delete -m "delete something" https://svn.sinaapp.com/appname/appversion/something
           注:可以从SVN仓库中直接删除单个文件或单个目录甚至某个版本。
 
    6、将一个本地项目导入到SVN仓库:
           导入应用的某个版本:
           # svn import localdir https://svn.sinaapp.com/appname/appversion
           注:要确保目前应用的appversion不冲突。
 
    7、查看工作拷贝中的文件或目录状态:
           # svn status [something]
 
    8、更新自己的工作拷贝:
           # svn update
           注:从SVN仓库下载最新版本,此命令会导致本地没有提交的更改丢失,建议使用此命令前先查看一下本地拷贝状态(svn status).
 
    9、取消对代码修改
           取消对代码的修改分为两种情况。
 
           第一种情况:改动没有被提交(commit)。
           这种情况下,使用svn revert就能取消之前的修改。
           svn revert用法如下:
           # svn revert [-R] something
           其中something可以是(目录或文件的)相对路径也可以是绝对路径。
           当something为单个文件时,直接svn revert something就行了;当something为目录时,需要加上参数-R(Recursive,递归),否则              只会将something这个目录的改动。
           在这种情况下也可以使用svn update命令来取消对之前的修改,但不建议使用。因为svn update会去连接仓库服务器,耗费时间。
           注意:svn revert本身有固有的危险,因为它的目的是放弃未提交的修改。一旦你选择了恢复,Subversion没有方法找回未提交的修                        改。
 
           第二种情况:改动已经被提交(commit)。这种情况下,用svn merge命令来进行回滚。 
           回滚的操作过程如下: 
             1) 保证我们拿到的是最新代码: 
                  svn update 
                  假设最新版本号是28。 
             2) 然后找出要回滚的确切版本号: 
                  svn log [something]
                  假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目
                  如果想要更详细的了解情况,可以使用svn diff -r 28:25 [something]
             3) 回滚到版本号25:
                  svn merge -r 28:25 something
                  为了保险起见,再次确认回滚的结果:
                  svn diff [something]
                  发现正确无误,提交。
             4) 提交回滚:
                  svn commit -m "Revert revision from r28 to r25,because of ..." 
                  提交后版本变成了29。
                  将以上操作总结为三条如下:
                  a. svn update,svn log,找到最新版本(latest revision)
                  b. 找到自己想要回滚的版本号(rollbak revision)
                  c. 用svn merge来回滚: svn merge -r : something
 
    10、查看SVN仓库日志信息:
            # svn log [workcopy]
            查看所有本地的历史日志,如果workcopy为某文件,那么就是查看某个文件的日志信息。
            查看SVN仓库所有文件的日志信息:
            # svn log https://svn.sinaapp.com/appname/
            这个命令会查看所有修改过的日志。
### SVN 常用命令列表及使用说明 #### 1. 检出 (Checkout) 用于从远程仓库获取最新的代码副本并创建本地工作区。 ```bash svn checkout URL [PATH] ``` 例如:`svn checkout http://example.com/repo/project/trunk myproject` 此命令会将 `http://example.com/repo/project/trunk` 的最新版本检出到名为 `myproject` 的本地目录中[^2]。 --- #### 2. 更新 (Update) 更新本地工作区至服务器上的最新版本。 ```bash svn update [PATH] ``` 如果需要更新到特定版本,可以指定修订号 `-r` 参数: ```bash svn update -r 版本号 [PATH] ``` --- #### 3. 提交更改 (Commit) 将本地修改的内容提交到远程仓库。 ```bash svn commit -m "提交信息" [PATH] ``` 注意:提交前需确保已解决冲突,并确认所有变更都已完成[^3]。 --- #### 4. 添加新文件或目录 (Add) 向版本控制中添加新的文件或目录。 ```bash svn add 文件名 或 svn add 目录名 --force ``` --force 参数可用于强制递归添加整个目录及其子项。 --- #### 5. 删除文件或目录 (Delete) 从版本控制中移除文件或目录。 ```bash svn delete 路径 [-m "删除原因"] ``` 该命令不仅会在本地删除目标路径,还会将其标记为待删除状态,在下次提交时正式生效。 --- #### 6. 查看状态 (Status) 查看当前工作区中的文件和目录相对于版本库的状态。 ```bash svn status [PATH] ``` 若要显示更详细的版本信息,则可加上参数 `-v`: ```bash svn status -v [PATH] ``` --- #### 7. 日志查询 (Log) 展示某文件或目录的历史记录以及每次变动的具体描述。 ```bash svn log [PATH] ``` 支持按时间范围筛选日志条目;比如只看最近几次的操作情况等。 --- #### 8. 差异对比 (Diff) 比较工作拷贝与基线版本之间存在的区别之处。 ```bash svn diff [PATH] ``` 对于不同版本间的差异分析则可通过下面方式实现: ```bash svn diff -r M:N [PATH] ``` 其中M,N分别代表起始结束两个具体编号值。 --- #### 9. 合并操作 (Merge) 把另一个分支上所做的某些改动应用到现在所在的这个分支里来完成同步过程。 ```bash svn merge -r M:N [URL|PATH] ``` 这里同样涉及源位置的选择问题——既可以是指定url地址形式表示远端资源链接,也可能是单纯依赖相对应的磁盘物理定位表达法给出近处对象参照物。 --- #### 10. 锁定/解锁机制 (Lock & Unlock) 当多人协作开发同一个项目期间为了避免彼此覆盖对方正在编辑处理的部分内容而引入的一种保护措施手段。 加锁: ```bash svn lock -m "锁定理由文字串" [FILE_PATH|--force] ``` 解锁: ```bash svn unlock FILE_PATH ``` --- #### 11. 显示基本信息 (Info) 提供关于某个特殊节点(如文件夹或者单独文档实例)的基础元数据详情报告输出功能模块接口调用方法演示例子如下所示: ```bash svn info TARGET ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值