这三个命令都可以用来撤销之前的变更,它们之间有什么区别呢?
hg strip
:从仓库中永久删除一个或多个变更集。hg backout
:创建一个新的变更集,以撤销指定变更集所做的更改。hg revert
:放弃工作目录中文件的未提交更改。
hg strip
:从仓库中永久删除一个或多个变更集。hg backout
:创建一个新的变更集,以撤销指定变更集所做的更改。hg revert
:放弃工作目录中文件的未提交更改。hg strip
命令可以从代码库中移除某一次变更及其所有子孙变更,就像这些变更从未存在过一样。使用该命令时需要小心,因为对于 public
类型的变更,它并不能在其他代码库中移除该变更,当你下次拉取代码时将会重新获取该变更。
hg backout
命令可以创建一个新的变更来撤销之前的某一个特定变更。原始变更记录仍保留在代码库中,但是也会有一个新的变更记录来移除变更效果。
hg revert
命令可以通过指定一个版本号来更新当前工作空间到某一个指定的版本,如果接下来你提交该工作空间,那么它会撤销此后所有的变更。
以下是关于 revert 和 backout 的更多详细信息:
在某个时刻,我需要构建Jenkins流水线,其中每次作业启动时都应该还原POM文件。我面临的问题是:如何反转所有POM文件。
由于这个答案是谷歌上最早的之一,我想为有同样问题的人贡献我的解决方案。
hg revert */pom.xml