当将 Git 与 TortoiseGit 一起使用时:有人知道如何将单个文件(或完整的存储库)恢复到以前的版本吗?
例如,我有一个包含多个文件的存储库。一个文件存在于三个修订版(1 ; 2 ; 3)中。现在我想从第 3 版改回第 2 版。
TortoiseGit 在“显示日志”对话框中提供了一个“恢复”功能,允许跳转回特定的版本,但这将恢复您的整个存储库而不是单个文件。
同样,一旦我还原了某些内容,我不知道如何撤消还原并跳回最新版本。
当将 Git 与 TortoiseGit 一起使用时:有人知道如何将单个文件(或完整的存储库)恢复到以前的版本吗?
例如,我有一个包含多个文件的存储库。一个文件存在于三个修订版(1 ; 2 ; 3)中。现在我想从第 3 版改回第 2 版。
TortoiseGit 在“显示日志”对话框中提供了一个“恢复”功能,允许跳转回特定的版本,但这将恢复您的整个存储库而不是单个文件。
同样,一旦我还原了某些内容,我不知道如何撤消还原并跳回最新版本。
从命令行:git checkout
可能是你想要的。
该文档显示了以下示例:
$ git checkout master~2 Makefile
恢复Makefile
到主分支中的两个修订
在 TortoiseGit 中(通过 Windows 资源管理器),您可以通过以下步骤执行此操作:
Show log
从 TortoiseGit 上下文菜单中选择Revert to this revision
1 files revert to e19a77
也可以获取特定文件:
TortoiseGit 显示一个包含所有修订列表的对话框
在对话框底部的列表中,它显示了与提交关联的所有文件
例如: - 原始文件是 file.txt - 修订版 2 将另存为 file-67b51a8.txt
我正在使用 TortoiseGit v2.2.0.0
在 TortoiseGit 中,答案是右键单击项目文件夹并单击 Show Log,然后右键单击要回滚到的更改并单击 Switch/Checkout to this...。然后,它会让你从提交堆栈中那个奇怪的地方开始,或者分支,以防你打算提交并希望事情保持理智。
根据这些评论更新了我的答案:
假设工作树是干净的并且您想要:
签出其先前版本的一些文件
(a) 右键单击要还原的文件并显示该文件的日志
(b) 右键单击文件列表中的文件并执行Revert to parent revision
(c) 重复 (a), (b) 直到你得到所有你想要的文件。
测试
恢复到当前版本
(a)在资源管理器的上下文菜单中执行Revert...
这样,您可以选择要还原的文件。
(b) 或这种快速方法:在 Log 对话框中执行Reset Hard
这样,所有更改的文件都会恢复。(=> 丢失所有工作目录更改)
(在 TortoiseGit 1.8.16.1、GfW 2.6.4.windows.1、Win 10 64bit 上测试)
对于乌龟版本 2.3.0:
您可以通过多种方式做到这一点,但我认为最快的是: