![恢复已删除的多次提交后的文件](https://linux22.com/image/1271041/%E6%81%A2%E5%A4%8D%E5%B7%B2%E5%88%A0%E9%99%A4%E7%9A%84%E5%A4%9A%E6%AC%A1%E6%8F%90%E4%BA%A4%E5%90%8E%E7%9A%84%E6%96%87%E4%BB%B6.png)
因此我开始了一个新的开发分支并决定删除一些文件。
经过几次提交后,我意识到某个决定是错误的,我需要恢复几个文件。
我最初的想法是如何恢复这些文件,只需从另一个分支复制并将它们提交给新分支的负责人,但我担心这意味着这些文件不会与它们的旧历史记录相关联。
有没有办法做到这一点并保持历史的完整性?
我正在使用 mercurial 版本 1.5.2
答案1
我在另一个网站上找到了这个解决方案,但我找不到它在哪里。
答案是恢复单独删除的文件:
hg revert -rxxx filename
其中xxx
是删除之前的修订编号。
然后将它们重新提交。历史记录被保留!
答案2
步骤 1:查找删除该文件的修订版本
$ hg log -r "removes('filename')"
changeset: 1725:28bee50c5fe4
…
步骤 2:将文件完全恢复到之前的修订版本
$ hg rev -r 1724 -C filename
-C
(干净)或选项--no-backup
确保文件收到完全相同的文件名,而没有任何修订号附录。