如何使用SourceTree回滚到之前的提交版本

19

我在 Mac 上存储了一个项目,并从该位置创建了一个仓库。我能够使用 SourceTree 提交代码,但现在我想回滚到早期的提交,这样可以更新文件夹中的所有文件。我不确定如何做到这一点?


你应该将 @dminones 的回答标记为“正确答案”。 - Inoy
@burrGGG 对 dminones 的回答有什么不清楚的地方吗?为什么不将其标记为已解决? - cd491415
2个回答

48

临时回退

如果您想暂时返回此提交,然后回到当前状态,请右键单击要还原的提交并单击“检出”。

永久回退

这将添加提交以撤消自此提交以来的所有更改。

右键单击要还原的提交,然后单击“重置<>到此提交”。

enter image description here


@Chris编辑以添加更多关于“临时”和“永久”的细节。 - dminones
11
执行“Permanent Revert Back”将在“Pull”队列中保留较新的提交记录。因此,如果我执行“pull”,这些提交记录将会重现。如何避免这种情况? - Giraldi
@Giraldi,由于在拉取队列中的提交是新提交,因此它们在还原后保留是可以的。如果您还想撤消尚未拉取的提交,则应先拉取再还原。 - dminones
@dminones 抱歉..我不太明白你的意思。你能详细描述一下如何避免重新拉取不需要的提交吗? - Giraldi
1
@dminones 是的,我希望是这样,但不幸的是那些不需要的更改已经在pull queue中了。我错过了哪些设置吗?因为我确定我按照了确切的步骤。 - Giraldi
显示剩余5条评论

1
我认为在上面的讨论中@dominones和@Giraldi可能有些误解。
@Giraldi可能想永久删除那些不需要的提交,并使git回到某个历史提交,从那里开始重新开始,就像你想从某个地方重新开始一样。
而@dmonones只是展示了如何恢复代码历史中的状态,丢弃您所做的一些代码更改,这将最终导致一个新的提交,旨在删除不需要/错误的更改,而不改变git历史记录。
要丢弃已经提交的git历史记录中的提交,您需要使用硬重置并强制推送。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接