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