如何将我的项目还原到以前的版本? [简单解释。]

时间:2018-12-19 17:36:12

标签: git git-commands

我正在尝试做一些我认为是基本的事情。

我有一个远程存储库(源)和一个本地(主库)。

我已经完成:

提交/推送2018-12-10 提交/推送2018-12-09 COMMIT / PUSH 2018-12-07 提交/推送2018-12-06 提交/推送2018-12-05

我现在要做的就是让我的本地/远程分支处于其所在的状态: 2018-12-07

我在这里搜索和搜索过很多东西,但是使用各种术语的答案太多了,我不知道发生了什么。我只想“撤消”已完成的工作。我怎样才能做到这一点?我想返回的提交ID为:e18782b(如果有所不同)。

我已经能够在此2018-12-07版本上执行“ CHECKOUT”,因此我的本地文件完全符合我的要求,但是那样就不会让我将其推送到远程,它一直说要运行pull首先,之后我就回到了开始的地方。...

2 个答案:

答案 0 :(得分:1)

出于所有实际目的,这将摆脱您在e18782b上发布的内容,假设您已经在要 hack 的本地分支上工作:

git reset --hard e18782b
git push origin -f <name-of-branch>

确保工作树周围没有待处理的更改,因为git reset --hard将摆脱它们。

答案 1 :(得分:1)

首先,让我们澄清一些术语和名称:

  • origin-远程存储库
  • local-当地邮局
  • master-信息库主分支的默认名称
  • origin/master-master仓库中origin分支的本地副本

就git本身而言,master并不特殊。但是,您的流程应特别对待它,并将其作为项目的稳定版本保存。应该创建其他分支以继续工作,并且只有在工作完成后才合并到master

要回答您的问题,您可以检出要重置的分支,将其重置,然后将其推入origin

git checkout master
git reset --hard e18782b
git push -f

您可以将master替换为适当的分支名称。请注意,这将丢弃e18782b之后的所有提交,因此请确保您确实不希望这些更改。同样,它将丢弃所有尚未提交的本地更改。只需少量工作即可恢复您丢弃的提交,但是使用git无法恢复未提交的本地更改。

相关问题