SVN 我刚刚用SVN覆盖更新了我本地的代码,悲催的是,我有一些新写的代码忘记提交了,直接被覆盖了!!!!

请问各位大侠,有没有办法恢复到我覆盖更新之前的代码啊?在线等。。。QQ350789448

在代码的编写过程中,难免有些错误需要修改,或者想从以前的文件进行代码修改,这样就涉及到版本的追踪,如果你以前提交时日志写的非常清楚,那版本追踪回滚起来就事半功倍、得心应手。下面介绍几种版本回滚的办法:
1.推荐的一种方法是,直接export一个你需要的版本,然后用你export的版本覆盖你的最新的版本,这样你就可以不丢失你新建的文件,同时获得最新的SVN版本控制。
操作步骤:TortoiseSVN→Show log→选中需要回滚的版本→右键→Export。
之后将修改的文件覆盖到你的最新版本,commit即可。
2. 若是你编辑了工程,在没有提交的前提下,你想放弃这些修改,你可以直接选择TortoiseSVN→revert就可以更新到工程的最新的版本。
3. 若是你想退回到某一个版本,你就可以直接选择TortoiseSVN→update to reversion,这样我们就可以把我们的版本回退到你选中的版本去,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。
4.你可以直接选择revert changes from this revision,这样的话你可以直接解决冲突并提交。不过这种方法的不足是,你新建的文件都没有了,整个工程都回退到之前的版本了。
5.可以从日志中回滚到你需要的版本,从日志中选中你需要的版本,然后Update item to reversion就好了,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-11
svn update 是不会覆盖你的更改的,如果别人的修改跟你的距离很远,svn 会将别人的更新合并到本地文件中,如果距离很近 svn 无法判断如何合并,会生成 .mine .r# .r#-1 原文件 共四个文件,供你选择保留哪些代码,处理后 reserved 一下,除了原文件以外就都删除了,commit 就可以了

建议仔细学习一下手册
第2个回答  推荐于2017-12-15
本地有个xxx.cpp.mine文件,把他的.mine后缀删了,得到的代码就是你更新之前的 这样你可以解决了冲突再把你原有代码加进去 应该是最优解了==本回答被网友采纳
第3个回答  2013-12-19
如果使用eclispe,还可以看看restore from loclal history
第4个回答  2017-12-14
兄弟你解决了吗?我和你情况一样啊,4000多行代码覆盖了,也没提交库里
相似回答