Git还原本地提交

时间:2011-06-16 21:28:09

标签: windows git msysgit

我在windows上的phpstorm中有一个git repo。我提交了一些更改集,然后将它们推送到我们的“中央仓库”。在此之后,我又做了一些提交。我不再希望这些提交没有被推到中央回购。如何清理我的工作副本与中央仓库(原产地)相同?

5 个答案:

答案 0 :(得分:75)

git reset --hard remotes/origin/HEAD

答案 1 :(得分:52)

git reset --hard remotes/origin/YOUR/BRANCH

优于/HEAD因为你不会看到这个:

$ git status
On branch MY/BRANCH
Your branch and 'origin/MY/BRANCH' have diverged,
and have 1 and 1 different commit each, respectively.

答案 2 :(得分:20)

如果您确定并且没有任何本地未提交的更改:

git reset --hard origin/master

其中origin/master是您推送的分支。

ref-log仍将包含恢复的位,直到垃圾收集到期为止。要恢复还原,

git reset --hard HEAD@{1}

答案 3 :(得分:14)

您可以通过

还原本地提交
git reset HEAD~N

其中N用于恢复提交次数。一个例子:

如果你必须从本地恢复单个提交,那么你可以使用

git reset HEAD~1

或     git reset HEAD ^

答案 4 :(得分:3)

根据我的描述,你创建了一些你已经推送到中央仓库的提交,之后你创建了一些更多的提交,但这些提交存在于本地。这些都没有推动中央回购。

删除/恢复本地提交;

git reset HEAD~{number_of_commit}

简单地说,您在命令提示符下单击git log并获取提交列表。看看你现在创建了多少个提交以及你需要还原多少。

例如,你必须删除你的最后一次提交,然后点击

git reset HEAD~2

还有另一种方法可以使用中央仓库重置本地仓库。但是,在这种情况下,您的本地提交将被删除,如果其他用户在中央仓库上推送提交,那么您的仓库将更新。

命令是:

git reset --hard remotes/origin/HEAD