在命令行环境下,回滚svn代码有以下两种场景:
改动还未commit
这种情况下,可以先查看一下svn status
,看一下哪些文件做了修改:
M x/xx/xxx.js
找到了修改了的文件,就可以这样:
1 | svn revert x/xxx.js |
如果想回滚整个目录,可以这样:
1 | svn revert . --recursive # .表示当前目录 |
一旦revert了,本地代码就会丢失,请谨慎操作。
改动已经commit
这种情况下,我们先拿到更新到最新版本:
1 | svn update |
假如拿到的最新版本是88,接下来就确定一下想回滚到哪个版本:
1 | svn log |less |
通过查看log找到要回滚的版本,假设是78,如果你想确定一下回滚内容,可以这样:
1 | svn diff -r 88:78 文件或者目录 |
确认后,就可以用merge命令来回滚了:
1 | svn merge -r 88:78 文件或者目录 |
可以再次确认一下回滚结果:
1 | svn diff 文件或者目录 |
确认无误之后,提交回滚结果:
1 | svn commit - m "revert to revision 78" |
提交后,版本号就变成了78。