撤消多个提交

Undo several commits

我需要一些帮助来确定在这种情况下最好的做法是什么:

我一直在一个项目的主干上开发一些代码。最近我发现它有一些问题,所以我检查了我对项目进行了一些更改的旧版本。

现在我希望这个较旧的、经过修改的结帐成为主干。问题是我不能只签入这个旧版本。我基本上想撤消最后 5 次提交并检查我当前正在处理的更改。

最好的方法是什么?

正如您已经意识到的,您不能仅仅提交本地更改,因为您的工作副本已过时。你可以试试这个:

  1. 在其他地方查看新的工作副本
  2. 启动 "SVN Show log" 对话
  3. 突出显示所有五个无效提交
  4. 右键单击它们 select "Revert changes from these revisions"
  5. 查看更改并提交有意义的消息:"Undo changes from blah blah..."

(这就是你应该首先进行的方式。)

现在,转到您当前的工作副本。使用您最喜欢的文件比较工具将待定更改复制到另一个工作副本(最新的那个)并在必要时提交它们。

现在两个工作副本都包含相同的代码——您应该能够更新第一个副本并在那里继续开发(或者干脆丢弃它并在第二个副本中开发)。