我最近对几个文件进行了不必要的更改。是否可以根据时间还原它们(例如还原过去 10 分钟内所做的所有更改)
问问题
89 次
1 回答
3
选项 1:回滚或剥离
如果您已经提交(而不是推送)一些不需要的更改,这很容易:
$ hg strip <firts-unwanted-revision>
这需要mq
strip
要启用的扩展。
或者检查该rollback
命令是否足以满足您的情况。
选项 2:仅还原所选文件
否则,您只能将文件恢复到上次提交的状态。Mercurial(作为 Git、SVN 和大多数其他版本控制系统)仅在您提交时跟踪更改。两者之间的一切都超出了 Mercurial 的控制。这就是为什么通常最好尽早并经常提交。
但是,您可以利用文件的修改时间,只恢复最近 10 分钟内修改过的文件。请注意,这会还原每个文件的所有更改,即 10 多分钟前对这些文件所做的更改。它仅保护您正确编辑的文件,其中最后一次更改已超过 10 分钟。
$ hg revert <files-touched-within-last-10-minutes>
find
在 Unix 系统上,您可以使用以下命令获取最近 10 分钟内修改的所有文件的列表:
$ find -mmin -10
选项 3:提交好的更改,丢弃不好的更改
最后,当您的错误更改没有覆盖好的更改但存在于它们旁边时,第三个选项效果很好。这里一个好的策略是
HG-Book 有更多关于处理不需要的更改的提示。
于 2013-01-06T21:05:34.453 回答