我已经恢复了我最后一次意外的 SVN 提交,svn merge -r COMMITTED:PREV .
看起来文件现在还可以,但我仍然在svn log
.
好吗?我可以从历史记录中删除我的最后一次提交吗?
我已经恢复了我最后一次意外的 SVN 提交,svn merge -r COMMITTED:PREV .
看起来文件现在还可以,但我仍然在svn log
.
好吗?我可以从历史记录中删除我的最后一次提交吗?
反向合并不会及时返回并删除错误提交的所有痕迹。它只是将您在该修订版中所做的更改应用到本地计算机上的工作副本,但顺序相反。
合并后,您可以通过svn status
在工作副本上运行来查看本地更改。请注意,SVN 服务器上尚未更改任何内容。验证更改后,您可以使用svn commit
. 此提交不会取代您的错误提交;它只是另一个普通的老香草提交1。此提交有自己的日志消息和修订号,您可以svn log
在提交成功后通过运行来验证。您现在将看到您的错误提交和修复它的提交。
是否可以完全删除错误的提交,就好像它从未存在过一样?从技术上讲,是的,但不是svn merge
在 SVN 服务器上具有管理员权限,也不是没有管理员权限。在 99.99% 的情况下,这将比它的价值付出更多的努力。
还要理解 SVN 的历史并不是真的要被修改(毕竟它是历史,你不会想成为那些讨厌的修正主义历史学家之一,对吧?)。像 SVN 这样的版本控制系统故意让更改历史变得困难,因为它们专门设计用于永远跟踪任何人对 repo 所做的每一次更改。请参阅Programmers SE 上对相关问题(如何编辑以前的提交消息)的回答以及有关为什么更改此历史记录可能不好的讨论的评论。