我最近对几个文件进行了不必要的更改。是否可以根据时间恢复它们(例如恢复最近10分钟内所做的所有更改)
答案 0 :(得分:3)
如果您已经提交(并且没有推送)一些不需要的更改,那么很容易:
$ hg strip <firts-unwanted-revision>
这需要mq
strip
extension to be enabled。
或者检查rollback
命令是否适合您的情况。
否则,您只能将文件还原为上次提交的状态。 Mercurial(作为Git,SVN和大多数其他版本控制系统)仅在您提交时跟踪更改。介于两者之间的一切都超出了Mercurial的控制范围。这就是为什么通常最好早点和经常提交。
但是,您可以使用文件的修改时间,并仅还原在过去10分钟内触摸过的文件。请注意,这将恢复每个文件的所有更改,即10多分钟前在这些文件中所做的更改。它只保护正确编辑的文件,其中最后一次更改超过10分钟。
$ hg revert <files-touched-within-last-10-minutes>
在Unix系统上,使用find
命令获取在过去10分钟内修改的所有文件的列表:
$ find -mmin -10
最后有一个第三个选项,当你的糟糕变化没有覆盖好的变化但存在于它们旁边时,这个选项很有效。
这是一个很好的策略hg up -r . -C
)HG-Book在dealing with unwanted changes上有更多提示。