繁体   English   中英

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

[英]Git (TortoiseGit) - How to revert a single file to a previous revision and then undo the revert?

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

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

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

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

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

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

文档显示了一个示例:

$ git checkout master~2 Makefile

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

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

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

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

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

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

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

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

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

    我正在使用TortoiseGit v2.2.0.0

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


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

    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)

    对于Tortoise版本2.3.0:

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

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

    暂无
    暂无

    声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

     
    粤ICP备18138465号  © 2020-2024 STACKOOM.COM