SVN 回滚,即取消对代码的修改,分为两种情况:
改动没有被提交(commit)
这种情况下,svn revert就能取消之前的修改。
用法如下:
svn revert [-R] sth其中sth可以是目录或文件的相对路径也可以是绝对路径。
- 当sth为单个文件时,直接svn revert sth就行了;
- 当sth为目录时,需要加上参数-R(Recursive,递归),否则只会将sth这个目录的改动。
也可以使用svn update命令来取消对之前的修改,但不建议使用。因为svn update会去连接仓库服务器,比较耗时。
注意:svn revert有风险,因为它的目的是放弃未提交的修改。一旦你选择了恢复,Subversion 没有方法找回未提交的修改。
改动已经被提交(commit)
这种情况下,用svn merge命令来进行回滚。回滚的操作过程如下:
- 保证拿到的是最新代码:svn update。假设最新版本号是 28。
- 然后找出要回滚的确切版本号:svn log [sth]。假设根据svn log日志查出要回滚的版本号是 25,如果想要更详细的了解情况,可以使用svn diff -r 28:25 [sth]
- 回滚到版本号 25:svn merge -r 28:25 sth。为了保险起见,再次确认回滚的结果:svn diff [sth]。正确无误的话,提交。
- 提交回滚:svn commit -m "revert revision from r28 to r25,because of ..."提交后版本变成了 29。
以上操作总结下:
- svn update,- svn log,找到最新版本
- 找到自己想要回滚的版本号
- 用svn merge来回滚:svn merge -r latest:older sth
温馨提示
回滚虽好,可不要贪多哦~~~^_^