我正在使用mercurial VCS,我错误地推了三次提交,我希望它们被撤消,这可以实现吗?我很确定没有任何更改传播给我推送到的存储库中的任何人,所以我相信这不会破坏任何人的代码......
我已经尝试过hg rollback但是因为我已经推动了我无法以正确的方式撤消任何内容.我也知道hg退出,但我不确定我是否应该使用这个我需要的...
谢谢!
编辑
这是图形日志,我忘了提到一些提交是合并的一部分,但它们也需要撤消...
tip
|
a
| \
| b
| /
c
|
d
Run Code Online (Sandbox Code Playgroud)
我需要将提示返回到c,或者d如果由于合并没有其他方法可以阻止它...
如果它已被推送,那么现在只能做两件事:
1)如果您能够删除中央存储库并将其替换为另一个:
您可以克隆中央存储库,但告诉Mercurial 仅克隆变更集"c".
然后,你可以利用这个存储库(即没有错的变化)和替换"旧"中央存储库(其中一个确实与它有错误的改变).
缺点:如果某人已经提取了不需要的提交并稍后再次推送,则他们会再次进入存储库.
所以你需要确保没有人犯错误,或者每个人都删除了他的克隆.
2)如果无法使用选项1,您可以使用hg backout撤消错误更改的效果 - 而不是更改集本身.
从链接引用:
回退通过应用与要撤消的变更集相反的变更集来工作.新的变更集将提交到存储库,并最终合并.
所以,这三个错误的变更会留在仓库,加上另外三个将被添加,他们每个人的恢复三个错误的变更之一的效果.
如果你这样做,那么其他人是否已经做出了错误的改变并不重要......一旦他拉出三个"退出"变更集,一切都还好.
| 归档时间: |
|
| 查看次数: |
2762 次 |
| 最近记录: |