svn的回滚操作(撤销修改)

有时候我们想丢弃对代码做过的改动。 
两种情况: 
一、改动没有 check in。这种情况下,我们使用svn revert就能把改动给扔掉了。 
提示:多数用户习惯于只把本地改动过的文件删掉,然后执行一次update来还原文件,但最佳实践是执行svn revert,这个操作会更安全也更迅速。因为update需要去连接服务器而你没有准备好接受新的改动,而svn revert不会连接服务器也不会从服务器获取新的改动。 

二、改动已经check in。 
这种情况下,有多种办法可以进行撤销修改。一般我们推荐用svn merge来达成目的。 
典型的操作过程如下: 
1、保证我们拿到的是最新代码: 
svn update 
假设是28版本。 
2、然后找出要移除的确切版本: 
svn log contacts.java 
根据log怀疑是27版本改坏的,比较一下: 
svn diff -r 26:27 contacts.java 
发现果真是27版本坏事。 
3、撤销27版本的改动: 
svn merge -r 27:26 contacts.java 
为了保险起见,再次确认合并的结果: 
svn diff contacts.java 
发现已正确撤销了改动,提交。 
4、提交改动 
svn commit -m “Revert wrong change from r27” 
提交后版本变成了29。

 
使用windows环境下TrotoiesSVN的用户:
 1、show log ,找到要撤销的提交记录。
 2、在选中记录上右侧,点Revert changes from this revision,此时本地代码会撤销选中记录那次的改动。
 3、svn commit。

发表评论

电子邮件地址不会被公开。