2016-11-22 95 views
1

我在Visual Studio中从主分支做了一些代码更改,并试图在TortoiseHG的新分支中提交更改,但显然我意外地将更正提交给了主枝。我没有将更改推送到远程存储库,但如果我尝试对更改执行“Backout”,则会收到错误消息“无法在不同的分支上取消更改”,尽管它明确指出已将更改提交给主要分支。如何“撤消”本地提交到错误的分支

有谁知道为什么我得到这个错误信息,以及如何将更改移动到正确的分支?

回答

0

我能够通过在提交中备份所有文件,在TortoiseHG中添加扩展名“eol”和“mq”,右键单击草稿分支并选择“修改历史 - >条带”来解决此问题。 ..“。之后,我只是再次添加备份的文件并将它们提交给正确的分支。

因为我是使用TortoiseHG的新手,所以我必须建议其他人对此很谨慎。

0

首先,您不希望退出,因为这是用于撤消推送/发布的更改。

有多种方式来做到这一点修复此:

库 - >回滚 /撤消

这将撤消您最后一次提交,并留下您的工作直接与提交的改变。然后您可以重新确认选择新的分支名称。

如果由于某种原因回滚/撤消不起作用:

  1. 更新到的提交父。
  2. 右键单击提交 - >恢复所有文件
  3. 再次提交更改 - 确保选择新的分支名称。
  4. 右键单击一次提交要删除 - >修改历史 - >条(带状延伸将需要在文件中启用 - >设置 - >扩展)
+0

在提交错误的分支后,我已经做了几次拉,这就是为什么确认消息显示“回滚到修订xxxx(撤消拉)”?我可以保持撤消,直到文字说“回滚到修订xxxx(撤消提交)”?我也想确保我只更新我的本地工作目录,是这里的情况吗? –

+0

是&&否 - 多次回滚对我无效&&查看阶段列 - 如果它不公开,那么提交可以安全地修改。 – Tom

1

只要你的变化是还没有推到其他地方有两个选项。

a)使用hg rebase移动一个变更及其所有后代的另一变更的顶部:

hg rebase -s FIRST_CHANGESET_TO_MOVE -d DESTINATION 

二)不太推荐的方法,如果你想撤销一次提交和避风港”,这只能从此之后拉或承诺任何东西,都是使用hg rollback。但即使在这些情况下,hg rebase似乎更容易使用。