Git(TortoiseGit) - 如何将单个文件还原到以前的版本,然后撤消还原?

Ale*_*der 31 windows git revision tortoisegit

与TortoiseGit一起使用Git时:有人知道如何将单个文件(或完整的存储库)恢复到以前的版本吗?

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

TortoiseGit在"显示日志"对话框中提供"恢复"功能,该功能允许跳回特定版本,但这将恢复整个存储库而不是单个文件.

一旦我还原了一些东西,我就不知道如何撤消恢复并跳回到最新版本.

Chr*_*ini 19

在TortoiseGit中,答案是右键单击项目文件夹并单击"显示日志",然后右键单击要回滚的更改,并单击"切换/结帐".它会让你从提交堆栈中的那个奇怪的地方继续,或者分支,以防你计划提交并希望事情保持理智.

  • 我认为这将改变所有项目 (5认同)

mli*_*bby 15

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

文档显示了一个示例:

$ git checkout master~2 Makefile

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

从TortoiseGit内部(通过Windows资源管理器)看起来您可以通过以下步骤执行此操作:

  • 在资源管理器中导航到文件所在的文件夹.
  • 右键单击要还原的文件,Show log从TortoiseGit上下文菜单中选择
  • 在顶部("图表")中,选择包含要还原到的文件版本的修订版本
  • 在第三部分(文件列表)中,右键单击该文件并选择 Revert to this revision
  • 你应该得到一条消息 1 files revert to e19a77
    • 我想我用TortoiseGit想出来了,看看编辑过的答案. (3认同)
    • 是的,你是对的,这与git命令行工具完美配合,但我在TortoiseGit中搜索相应的功能,后者也在后台使用git命令行工具. (2认同)

    小智 10

    也可以获取特定文件:

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

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

    • 点击之前的修订版(2)

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

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

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

    我正在使用TortoiseGit v2.2.0.0


    Yue*_* Ho 8

    根据这些评论更新了我的答案:


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

    1. 签出其先前版本的一些文件
    2. 测试
    3. 恢复到当前版本

    1. 签出其先前版本的一些文件

      (a)右键单击要还原的文件,然后单击"显示该文件的日志"

      在此输入图像描述

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

      在此输入图像描述

      在此输入图像描述

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

      在此输入图像描述

    2. 测试

    3. 恢复到当前版本

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

      这样,您可以选择要还原的文件.

      (b)或这种快速方式:在Log对话框中执行Reset Hard

      这样,所有更改的文件都会还原.(=>丢失所有工作目录更改)

      在此输入图像描述

      在此输入图像描述

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