'TortoiseSVN的TortoiseGit等价 - >显示日志 - >恢复到此修订版'

时间:2017-08-17 16:17:28

标签: git svn tortoisesvn tortoisegit

我正在寻找一个相当于:

的TortoiseGit操作
TortoiseSVN --> Show log --> Revert to this revision

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

换句话说,当我执行TortoiseSVN --> Check for modifications时,更改的文件会显示出来,当我完成对我已经恢复的版本的测试时,我可以轻松地丢弃这些更改。

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

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

  1. 执行TortoiseGit --> Show log --> Export this revision...
  2. 将输出文件复制到我的本地存储库
  3. 这有更直接的方式吗?

    我已尝试过以下TortoiseGit操作,但它们只会在我的本地存储库中“造成破坏”,而且我无法继续执行“标准”提交&之后推送程序:

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

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

    非常感谢你的帮助。

2 个答案:

答案 0 :(得分:3)

  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

答案 1 :(得分:1)

我找到了另一种比我之前回答的方法,并且你不关心class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): QtGui.QMainWindow.__init__(self, parent) self.initUI() def initUI(self): ... TitleBar.installEventFilter(self) self.installEventFilter(self) Title.installEventFilter(self) def eventFilter(self, obj, event): if event.type() == QtCore.QEvent.MouseButtonPress: self.oldPos = event.globalPos() elif event.type() == QtCore.QEvent.MouseMove: delta = QtCore.QPoint(event.globalPos() - self.oldPos) self.move(self.x() + delta.x(), self.y() + delta.y()) self.oldPos = event.globalPos() return QtGui.QMainWindow.eventFilter(self, obj, event) Renamed itme(s)

  1. 选择要还原的所有提交,然后右键单击它们,然后点击added

    enter image description here

  2. 将是一个进度对话框

    enter image description here

  3. 然后,询问您是否执行提交。点击Revert changes by these commits

    enter image description here

  4. 提交对话框:

    enter image description here
    但是,正如您所看到的,TortoiseGit会给出一个sha1值,而不是您想要还原的所有提交sha1值。所以你可能想在那里添加/修改更多信息。像这样:
    enter image description here

  5. 还原提交

    的日志

    enter image description here