我想知道是否可以从旧版本中恢复已删除的文件(一种干净的方法)
我为一些测试重命名了一个文件,然后我提交了所有工作(我忘记重命名文件)并做了很多其他提交......当我意识到时,为时已晚......
问候, 艾曼
最简单的方法是bzr revert
在文件被删除之前简单地使用修订号:
bzr revert -rX path/to/file
bzr commit -m 'Bringing path/to/file back'
你不需要合并任何东西。
如果您在删除该文件时知道修订号(您可以使用 来检查历史记录bzr log -v
),那么您可以使用 merge 命令恢复该文件。因此,对于文件foo
和修订号N
,您需要运行命令:
bzr merge foo -r N..N-1
例如对于修订版 287:
bzr merge foo -r 287..286
此命令将恢复您的文件,如修订版 287。您需要提交此更改并完成。
这不是最好的答案。请参阅 bialix 的答案,这要简单得多。我将把它留在这里仅供参考。
这是我认为最干净的方法:
创建一个分支:
bzr 分支 mytree 修复路径
cd 进入修复分支
仅恢复上次修订时丢失的文件(例如本例中的 287):
bzr revert -r 287 lost.file
提交更改
bzr commit -m "解开我的脚"
cd 回到主分支
在修复中合并
bzr 合并修复路径
准备就绪后,提交合并并删除修复分支。
您可以通过恢复原始工作分支来做到这一点,但最好不要这样做。您还需要担心(只是一点点)任何未提交的更改。