300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > SVN 版本回退 命令行

SVN 版本回退 命令行

时间:2022-05-24 09:21:32

相关推荐

SVN 版本回退 命令行

有时候SVN提交错了,需要回退版本。有时候我们需要暂时切换到之前的某个版本进行调试等。这时候就是需要SVN版本回退功能。

网上对于SVN的版本回退的文章,连内容都是出奇的一致,而且模棱两可,人云亦云。可能是大家用SVN比较少,用命令行的更少,毕竟git是目前做好用的版本控制工具,另外SVN的工具也很好用。

暂时性回退

暂时回退,做完工作后再切换回来。

svn up -r 12494

本质上是将SVN本地代码更新到了某此提交。

之后使用svn update操作还能回到当前最新的提交处。

永久回退

有时候每次提交出错了,我们需要撤销,但是已经提交到了远程,那怎么处理呢,git有reset --hard,svn没有这玩意,svn操作起来比git,还是有点差😂。

SVN需要两步操作:

回退

svn merge -r 12506:12494 /Users/xxx/Documents/xxx/SVN/xxx/xxx_20.03

提交

svn commit -m "revert verison from r12506 to r12494"

做上面的处理之前先将自己的代码update到最新。

详细说明:

首先回退到我们想撤销操作前的那次提交:

svn merge -r 12506:12494 /Users/xxx/Documents/xxx/SVN/xxx/xxx_20.03

上面的操作让SVN从r12506的提交回退到r12494,本质上是将r12506包括r12506这次的提交给撤销了,保留到了r12494处的提交。

后面的是文件路径,我比较懒,直接写了项目的路径,正对整个项目进行回退。也可以正对某个文件或文件夹进行操作。

其次将回退过来的操作提交到远程:

svn commit -m "revert verison from r12506 to r12494"

log记录如下:

回退前的log

------------------------------------------------------------------------r12506 | ZhangSan | -06-18 07:30:45 +0800 (四, 18 6 ) | 2 linesxxxx...------------------------------------------------------------------------r12499 | ZhangSan | -06-17 10:58:15 +0800 (三, 17 6 ) | 2 linesxxxx...------------------------------------------------------------------------r12494 | LiSi | -06-16 09:03:04 +0800 (二, 16 6 ) | 1 linexxxx...------------------------------------------------------------------------

MengXiang的这两次提交需要被撤回,提交有误。也就是说需要回到到LiSi的r12494这次提交。

回退后的log

------------------------------------------------------------------------r12508 | ZhangSan | -06-18 10:23:42 +0800 (四, 18 6 ) | 1 linexxxx...------------------------------------------------------------------------r12506 | ZhangSan | -06-18 07:30:45 +0800 (四, 18 6 ) | 2 linesxxxx...------------------------------------------------------------------------r12499 | ZhangSan | -06-17 10:58:15 +0800 (三, 17 6 ) | 2 linesxxxx...------------------------------------------------------------------------r12494 | LiSi | -06-16 09:03:04 +0800 (二, 16 6 ) | 1 linexxxx...------------------------------------------------------------------------

从log上看,SVN会生成一个新的提交r12508,因为我们重新commit了,而且保留了需要被撤销的两次提交。而且回退后,代码重新回到了r12494这次提交的内容。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。