2013-10-02 66 views
27

tortoisegit有没有一个选项撤消最后提交到回购?Tortoisegit撤消最后提交到回购

由于错误,我将大量不必要的文件推送到我的git存储库(branch:master)中,我需要将其撤销。我已经搜索了很多正确的选项在龟git撤消推,并回到最后一次提交之前的状态。请告诉我一种撤消我最后一次提交的方法。

回答

26

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

保重,您需要再次commitpush所做的更改。

+0

谢谢你,它工作得很好。但是现在,当我选择文件并单击提交按钮时,它给了我另一个错误(带有“ok”按钮的空白警报消息)。我正在使用tortoisegit版本1.8.5。但是这在我的个人电脑中没有发生。 – user2742122

37

如果您还没有推你的变化,但(这样你的承诺仅是局部的)

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

如果你有,那么这仍然可以完成,但你也必须做一个强制推动(勾选“覆盖已知更改”)。


还有快捷当你只想(1)重做最后一次提交和(2)你没有推它尚未

  1. 提交 - >检查“修改最后提交

这将取代最后一次提交。但我不建议使用这个 - 如果最后一次提交已经被推送,那么最终可能会导致一团糟。 TortoiseGit将不是阻止你在这里。

通过执行重置您不得不看看日志,并在那里看到提交是否为本地。

+0

然后你将如何删除非指向本地提交? –

+0

我回答了我自己的问题。不需要删除非指向的本地提交。只需右键点击它并选择'在此提交创建分支'并创建一个新的分支。然后,你可以按照链接删除该分支:http://stackoverflow.com/questions/9705534/how-do-i-delete-a-git-branch-with-tortoisegit –

+0

@BarryGuvenkaya:我不认为你需要创建一个新的分支。假设你没有推送,当你重置现有的分支时,你需要刷新日志,并且你重置索引后你的本地提交将会消失。 – Ellesedil