【发布时间】:2019-01-06 13:34:35
【问题描述】:
我一直在从事一个大型项目,为客户更新大型代码库。他们使用 Mercurial 作为 VCS。
像往常一样,我在项目开始时分支了他们的 master 分支。
作为项目的一部分,我删除了代码库各个部分的 250 多个文件。随着项目的进展,这些删除(和其他更改)都已推送回远程存储库。
最近,我做了一个我决定不想要的更改。以为我会回到之前的提交,我输入:
hg revert
没有检查发生了什么(愚蠢,我知道),我承诺并推动。
看到我在项目中删除的很大一部分文件(并且看似随机选择)被重新添加到我的分支中,我感到震惊。查看过去某些文件已被删除的提交,这些提交现在包含已删除的文件。
就好像我整个历史的一部分被改变了,而且以我无法理解的方式。
这么简单的命令怎么会做出如此疯狂的事情,我该如何撤消这些更改?除了手动选择代码库之外,我找不到重新删除所有这些文件的方法......这肯定不是最好的解决方案吗?
帮助非常感谢!
【问题讨论】:
-
hg revert在 work-tree 上运行并且没有参数,应该简单地将工作树文件设置回它们在当前检查时的方式 -出提交。所以不清楚这里到底发生了什么。 -
我们能看到树吗?
hg log -G看到了什么?