45

tortoisegit 中是否有一个选项可以撤消对回购的最后一次提交?

我错误地将大量不必要的文件推送到我需要撤消的 git 存储库(分支:master)中。我已经在 tortoise git 中搜索了很多正确的选项来撤消推送并返回到上次提交之前的状态。请告诉我一种撤消我上次提交的方法。

4

2 回答 2

61

如果您还没有推送您的更改(所以您的提交只是本地的)

  1. TortoiseGit->Show log
  2. 选择要回滚到的提交
  3. Reset "<branch>" to this...

如果你有,那么这仍然可以完成,但是你还必须做一个强制推送(检查“覆盖已知更改1)。

1 覆盖已知更改”标志将用新的提交替换已经推送的提交。如果有人可能已经获取了您要替换的提交,请不要​​使用此功能,否则这样做会在历史中创建一个具有两个相互冲突的事实的分叉。


当您只想(1)重做最后一次提交和(2)您还没有推送它时,还有一个快捷方式

  1. 提交 -> 勾选“修改上次提交

这将用新的提交替换最后一次提交。但我不推荐使用这个——如果最后一次提交已经被推送,你可能会遇到一团糟。TortoiseGit不会在这里阻止你。

通过执行重置,您将被迫查看日志,并在那里查看提交是否是本地的。

于 2014-03-26T10:03:54.867 回答
40

如果您需要恢复到上次提交之前的状态,只需从日志列表中选择已提交的操作并选择revert changes by this commit.

请注意,您需要一次commit又一次push地进行更改。

于 2013-10-02T11:50:55.973 回答