【发布时间】:2010-09-08 00:28:12
【问题描述】:
我不小心将一些未准备好的更改推送到主分支,所以我立即退出。后来我尝试将主干中的新更改合并到我的分支中,但合并效果不佳。特别是,它似乎认为退出意味着我希望撤消所有更改。幸运的是,我修改过的文件都没有被主分支上的更改修改,所以我可以将文件恢复到本地,但如果有冲突,这会很混乱。是在这种情况下放弃了正确的做法,或者我可以做些什么来避免以后的潜在冲突。
【问题讨论】:
我不小心将一些未准备好的更改推送到主分支,所以我立即退出。后来我尝试将主干中的新更改合并到我的分支中,但合并效果不佳。特别是,它似乎认为退出意味着我希望撤消所有更改。幸运的是,我修改过的文件都没有被主分支上的更改修改,所以我可以将文件恢复到本地,但如果有冲突,这会很混乱。是在这种情况下放弃了正确的做法,或者我可以做些什么来避免以后的潜在冲突。
【问题讨论】:
你想要rollback 而不是backout。回滚是最后一次拉取(或收到的推送)或提交的一级撤消。退出,应用您指定的变更集的逆。
例如,如果您进行提交并意识到您在提交消息中有错字,您可以rollback(前提是您没有进行其他拉取或提交。另一方面,如果您意识到您的新的线程调度程序是一个糟糕的选择,而您想撤消它,然后您执行回退,以便历史记录反映您选择的路径并决定反对——因为这也是有价值的信息。
如果要撤消推送,则需要登录到接收端并在那里进行回滚。
【讨论】:
我也遇到过。如果它对其他人有帮助: 无论如何,我的存储库不应该允许推送。这样做,放入您的 .hg/hgrc 文件:
[hooks]
prechangegroup = false
也就是说,如果您想阻止任何人推入该存储库。
【讨论】: