TortoiseGit等同“TortoiseSVN的 - >显示日志 - >恢复到此版本”

问题描述:

我要寻找一个TortoiseGit操作,相当于:TortoiseGit等同“TortoiseSVN的 - >显示日志 - >恢复到此版本”

TortoiseSVN --> Show log --> Revert to this revision 

在TortoiseSVN中,该操作将恢复本地存储库选中修订版,同时保留所有更改的文件。

换句话说,当我做TortoiseSVN --> Check for modifications时,已更改的文件就会显示出来,当我完成测试时,我可以轻松地放弃这些更改。

出于某种原因,我发现在TortoiseGit上执行这个有用的操作非常困难。

,我目前使用的解决方法是:

  1. 执行TortoiseGit --> Show log --> Export this revision...
  2. 复制输出文件到我的本地库

有没有更直接的方式为这个?

我已经试过以下TortoiseGit操作,但他们只是在我的本地库“兴风作浪”,我无法与“标准”提交&推送流程之后继续:

  • Reset "master" to this...
  • Switch/Checkout to this...
  • Rebase "master" onto this...
  • Revert change by this commit

我发现了一个类似的问题here,但答案暗示了我的TortoiseGit弹出菜单中甚至不可行的选项。

非常感谢您的帮助。

+0

已经有一段时间,因为我用颠覆,但这里有一个例子,假设您在提交#1有一个包含A的文件,则在提交#2时将其更改为B.现在,您恢复到#1,该文件现在是否包含B或A? –

+0

你尝试过“git checkout”吗?你说这会造成严重破坏,那究竟是什么意思?但我先前的问题,首先回答,我们会从那里拿下。 –

+0

@ LasseV.Karlsen:我在TortoiseGit弹出菜单中没有该选项。 – goodvibration

  1. 在提交右键单击,然后Compare with working tree
    enter image description here
  2. 选择所有文件预计Added者和Rename的,然后右键单击,并Revert to revert xxxxxxx(sha1)
    enter image description here
  3. 对于Added的,你需要删除他们手动
  4. 对于Renamed的人,你需要手动重命名他们
  5. 回到Changed Files并刷新它,看它是否是No differences found!
    enter image description here
  6. 提交
    enter image description here
  7. 日志 enter image description here

我发现了另一个连击方式比我面前回答你不用关心Renamedadded这样(012)

  1. 选择所有承诺要恢复,并在其上单击鼠标右键,然后单击Revert changes by these commits

    enter image description here

  2. 将是一个进度对话框

    ​​

  3. 然后,问你是否执行Commit。点击Commit

    enter image description here

  4. 提交对话框:

    enter image description here
    但是,正如你所看到的,TortoiseGit给出了一个SHA1值,而不是所有承诺要恢复SHA1值。所以你可能想要在那里添加/修改更多的信息。就像这样:
    enter image description here

  5. 复归日志提交

    enter image description here