Git(TortoiseGit) – 如何将单个文件恢复到以前的版本,然后撤消恢复?

在TortoiseGit中使用Git时:有人知道如何将单个文件(或完整的存储库)还原到以前的版本?

例如,我有一个存储库包含多个文件。 一个文件存在三个版本(1; 2; 3)。 现在我想从修订版3变回2。

TortoiseGit在“显示日志”对话框中提供了一个“回复”function,允许跳回到一个特定的版本,但是这将恢复你的整个版本库,而不是一个文件。

另外,一旦我已经恢复了一些东西,我不知道如何撤销恢复和跳回到最新的修订。

在TortoiseGit中,答案是右键单击项目文件夹,然后单击显示日志,然后右键单击要回滚到的更改,然后单击切换/检出到此…。 它会让你从那个奇怪的地方进入提交堆栈,或者分支,如果你打算提交,并希望事情保持理智。

从命令行: git checkout可能是你想要的。

该文档显示了一个例子:

$ git checkout master~2 Makefile

Makefile恢复到主分支中的两个修订版本

从TortoiseGit(通过Windows资源管理器),看起来你可以通过以下步骤来完成这个工作:

  • 在资源管理器中导航到文件所在的文件夹。
  • 右键单击要恢复的文件,从TortoiseGit上下文菜单中选择“ Show log
  • 在顶部(“图形”)中,选择具有要恢复到的文件版本的修订版本
  • 在第三部分(文件列表)中,右键单击该文件,然后选择Revert to this revision
  • 你应该得到一个消息像1 files revert to e19a77
  • 更新我的答案,根据这些意见:

    • 由亚历山大 。
    • 由mlibby
    • 由克里斯Moschini

    假设工作树是干净的,你想要:

    1. 检出其以前版本的一些文件
    2. 测试
    3. 恢复到当前的修订版本

    1. 检出其以前版本的一些文件

      (a)右键单击要恢复的文件,然后显示该文件的日志

      在这里输入图像说明

      (b)右键单击文件列表中的文件并执行还原为父版本

      在这里输入图像说明

      在这里输入图像说明

      (c)重复(a),(b)直到获得所有你想要的文件。

      在这里输入图像说明

    2. 测试

    3. 恢复到当前的修订版本

      (a)在资源管理器的上下文菜单中执行Revert …

      这样,您可以选择要恢复的文件。

      (b)或者这个快速的方法:在日志对话框中执行硬重置

      这样,所有更改的文件恢复。 (=>丢失所有工作目录更改)

      在这里输入图像说明

      在这里输入图像说明

    (在TortoiseGit 1.8.16.1,GfW 2.6.4.windows.1,Win 10 64bit上测试)

    也可以得到一个特定的文件:

    • 用鼠标右键单击该文件
    • 选择菜单项:Git Show Log

    TortoiseGit显示一个包含所有修订列表的对话框

    • 点击之前的修改(2)

    在对话框底部的列表中,它显示了与提交相关的所有文件

    • 找到您要查看的文件
    • 右键单击该文件并保存修订版本
    • 这将保存文件的先前版本与提交编号连接在一起的文件

    例如: – 原始文件是file.txt – 修订版2将保存为文件-67b51a8.txt

    我正在使用TortoiseGit v2.2.0.0

    对于龟版本2.3.0:

    你可以用几种方法做,但我认为最快的是:

    1. 右键单击该文件
    2. 点击菜单选项“以前版本的差异”
    3. 右键单击文件的左侧(上一个)版本
    4. 点击菜单项“使用这个整个文件”
    5. 保存更改(ctrl + s)