[英]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资源管理器)看起来您可以通过以下步骤执行此操作:
Show log
Revert to this revision
1 files revert to e19a77
也可以获取特定文件:
TortoiseGit显示一个包含所有修订列表的对话框
在对话框底部的列表中,它显示与提交相关联的所有文件
例如: - 原始文件是file.txt - 版本2将保存为文件-67b51a8.txt
我正在使用TortoiseGit v2.2.0.0
根据这些评论更新了我的答案:
假设工作树是干净的,你想要:
签出其先前版本的一些文件
(a)右键单击要还原的文件,然后单击“显示该文件的日志”
(b)右键单击文件列表中的文件,然后执行还原为父版本
(c)重复(a),(b)直到你得到你想要的所有文件。
测试
恢复到当前版本
(a)在资源管理器的上下文菜单中执行Revert ...
这样,您可以选择要还原的文件。
(b)或这种快速方式:在Log对话框中执行Reset Hard
这样,所有更改的文件都会还原。 (=>丢失所有工作目录更改)
(在TortoiseGit 1.8.16.1上测试,GfW 2.6.4.windows.1,Win 10 64bit)
对于Tortoise版本2.3.0:
您可以通过多种方式实现这一目标,但我认为最快的是:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.