繁体   English   中英

通过命令行撤消SVN 1.6错误

[英]Undo SVN 1.6 mistake via command line

我正在将Mac OS X终端用于SVN。 关于SVN和命令行,我非常业余。 我通常只是前端代码猴子。

我不小心以某种方式在尝试检出该分支的同时,将项目的某些分支提交到该项目的另一个分支中。 是的,我很糟糕。

远程存储库:

MyProjectBranch
    BranchNeedsToNotBeHere
    BranchNeedsToNotBeHere2
    BranchNeedsToNotBeHere3
    expectedDirectoryStillHere1
    expectedDirectoryStillHere2
    expectedDirectoryStillHere3

最后,以所需的版本更正本地存储库:

MyProjectBranch
    expectedDirectoryStillHere1
    expectedDirectoryStillHere2
    expectedDirectoryStillHere3

我如何在不使自己显得无能的情况下消除这种烦恼? 似乎可以使用一个简单的“还原”命令,但是我发现的只是“反向合并”-如果我正确地做到了这一点,则根本没有删除无关的目录和预期的目录不是正确的版本,而是较旧的版本。 因此,我什至可能没有做到这一点。

对于任何能救我的人来说,都非常值得赞扬!

通过执行以下操作还原提交:

svn merge -c -$REV

其中$ REV是您引入目录的更改。 如果您在一系列修订中都这样做,则对每个修订重复此操作。 请注意修订版本号前面的破折号,它表示该修订版本已逆转。 如果要删除的修订范围是路径上唯一提交的内容,则可以使用-r $YOUNGEST:$OLDEST而不是-r $YOUNGEST:$OLDEST -c -$REV来指定范围,然后执行一次反向合并。

如果只限于添加新文件/目录,则可以在路径上使用svn rm并将其删除。

首先,我认为我要说的不是正确的做法。 它甚至可能被否决。 转到svn remote并删除您认为不应该存在的分支。 更新本地,您应该完成。 在执行此操作之前,请先进行备份。

另外,我不确定为什么要先在本地删除多余的分支,然后再提交才能为您解决。 你尝试过吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM