2010-11-03 85 views
4

是否有一个简单的方法来撤消乌龟恢复?撤消恢复在git或tortoisegit

以下是更多信息:我刚刚提交了一个大型多文件签入,之后决定我改为在大文件之前提交一个单独的小签入,以便明天更容易修改该大签入。

因此,我提出了tortoisegit的日志,右键单击最后一个签入,然后选择“恢复”。这消除了更改,并删除了我的工作目录中的一堆文件。我真正想要的是“重置”(回滚签入并保留我的工作目录),而不是恢复(在我的工作目录中创建“撤消签入”)。

我该如何撤销我的回复?

回答

5

只是git reset到了你想要的地步,无论如何。一个revert没什么特别的:它只是一个正常的提交,它与另一个提交完全相反。由于它只是一个正常的提交,它将被垃圾收集,就像您最初想要摆脱的其他提交一样。

7

更多谷歌搜索后,我在this blog post找到了答案:只需再次运行revert命令,它会撤消你的回复,而不用任何额外的提交乱抛垃圾的历史。就好像我永远不会在第一时间运行复原。

博客文章只提到常规(命令行)git的这个技巧,但同样的东西在tortoisegit中也有效。特别好的是,我的工作目录中的其他更改没有被吹走 - 只有恢复被撤消。

我要离开自我生成的Q &这里有一对,因为它很难找到这个答案 - 希望能帮助别人节省时间。

+0

除非你已经推迟了提交提交,否则你肯定应该重置两次提交,就像Jörg说的那样 - 如果你能提供帮助,不需要用一对相反的提交来混淆历史。 – Cascabel 2010-11-03 15:30:20

+0

什么会“重置回两个提交”在我的工作目录中进行了更改(包括错误还原的提交以及其他非暂时更改)? – 2010-11-03 18:37:48

0

我试着恢复了之前恢复的提交,它什么也没做。结果是“没有提交(工作目录干净)”。

什么工作是樱桃采摘以前恢复承诺。这拉住了我以前恢复的变化,并没有改变我的工作目录。