在Git或TortoiseGit中撤销还原操作

4
有没有一种简单的方法来撤销TortoiseGit的还原操作?
以下是更多信息:我刚提交了一个大型的多文件检查,然后决定在提交这个大检查之前提交一个单独的小检查,以便明天更容易修改那个大检查。
因此,我在TortoiseGit中打开日志,右键单击最后一个检查,并选择“还原”。这会撤消更改并删除我的工作目录中的一堆文件。我真正想要的是“重置”(回滚一个检入并保留我的工作目录),而不是还原(在我的工作目录中创建一个“撤消检入”)。
我如何撤销还原操作?
3个回答

7
更多搜索后,我在这篇博客文章中找到了答案:只需再次运行revert命令,它将撤销您的还原操作,而不会在历史记录中留下任何额外的提交。就好像我从未执行过还原操作一样。
该博客文章仅提到了常规(命令行)git的技巧,但在tortoisegit中同样适用。特别之处在于,我的工作目录中的其他更改不会被清除--只有还原操作被撤消。
由于这个答案有点难找,我将保留自动生成的Q&A对,希望能帮助其他人节省时间。

除非您已经推送了还原提交,否则您应该像Jörg所说的那样将其重置回两个提交,无需在历史记录中添加一对相反的提交(如果可以避免的话)。 - Cascabel
“重置回两个提交”会对我的工作目录中的更改产生什么影响(包括误撤销提交的更改和其他未暂存的更改)? - Justin Grant

5

无论如何,只需使用git reset来回到您想要的点即可。撤销操作并不特殊:它只是一个正常的提交,与另一个提交所做相反的事情。由于它只是一个正常的提交,因此它将像您最初想要摆脱的其他提交一样被垃圾收集。


0

我尝试还原之前已经还原过的提交,但是没有任何效果。结果显示为“无需提交(工作目录干净)”。

有效的方法是挑选之前被还原的提交。这样可以拉取我之前还原的更改,而不会影响我的工作目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接