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

时间:2009-11-03 20:23:13

标签: windows git revision tortoisegit

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

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

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

此外,一旦我还原了某些内容,我就不知道如何撤消还原并跳回到最新版本。

5 个答案:

答案 0 :(得分:20)

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

答案 1 :(得分:15)

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

文档显示了一个示例:

$ git checkout master~2 Makefile

Makefile还原为主分支中的两个修订版

在TortoiseGit内(通过Windows资源管理器),您可以通过以下步骤执行此操作:

  • 在资源管理器中导航到文件所在的文件夹。
  • 右键单击要还原的文件,从TortoiseGit上下文菜单中选择Show log
  • 在顶部(“图表”)中选择包含您要还原为的文件版本的修订
  • 在第三部分(文件列表)中,右键单击该文件,然后选择Revert to this revision
  • 您应该收到1 files revert to e19a77
  • 等消息

    答案 2 :(得分:8)

    也可以获取特定文件:

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

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

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

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

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

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

    我正在使用TortoiseGit v2.2.0.0

    答案 3 :(得分:7)

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

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

    1. 查看其先前版本的某些文件
    2. 测试
    3. 恢复到当前版本
      1. 查看其先前版本的某些文件

        (a)右键单击要还原的文件并显示该文件的日志

        enter image description here

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

        enter image description here

        enter image description here

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

        enter image description here

      2. 测试

      3. 恢复到当前版本

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

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

        (b)或这种快捷方式:在日志对话框中执行重置硬

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

        enter image description here

        enter image description here

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

    答案 4 :(得分:1)

    For Tortoise Version 2.3.0:

    你可以通过多种方式实现这一目标,但我认为最快的是:

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