10

我想知道是否可以从旧版本中恢复已删除的文件(一种干净的方法)

我为一些测试重命名了一个文件,然后我提交了所有工作(我忘记重命名文件)并做了很多其他提交......当我意识到时,为时已晚......

问候, 艾曼

4

3 回答 3

13

最简单的方法是bzr revert在文件被删除之前简单地使用修订号:

bzr revert -rX path/to/file
bzr commit -m 'Bringing path/to/file back'

你不需要合并任何东西。

于 2009-11-02T08:37:41.210 回答
4

如果您在删除该文件时知道修订号(您可以使用 来检查历史记录bzr log -v),那么您可以使用 merge 命令恢复该文件。因此,对于文件foo和修订号N,您需要运行命令:

bzr merge foo -r N..N-1

例如对于修订版 287:

bzr merge foo -r 287..286

此命令将恢复您的文件,如修订版 287。您需要提交此更改并完成。

于 2009-10-27T05:56:55.977 回答
0

这不是最好的答案。请参阅 bialix 的答案,这要简单得多。我将把它留在这里仅供参考。


这是我认为最干净的方法:

  1. 创建一个分支:

    bzr 分支 mytree 修复路径

  2. cd 进入修复分支

  3. 仅恢复上次修订时丢失的文件(例如本例中的 287):

    bzr revert -r 287 lost.file

  4. 提交更改

    bzr commit -m "解开我的脚"

  5. cd 回到主分支

  6. 在修复中合并

    bzr 合并修复路径

  7. 准备就绪后,提交合并并删除修复分支。

您可以通过恢复原始工作分支来做到这一点,但最好不要这样做。您还需要担心(只是一点点)任何未提交的更改。

于 2009-10-26T20:33:07.147 回答