Git恢复本地提交
我有一个在Windows上的phpstorm挂钩的git回购。 我犯了一些改变,然后把它们推到我们的“中央回购”。 在此之后,我做了更多的提交。 我不再需要这些没有被推到中央仓库的提交。 我如何清理我的工作副本与中央回购(原产地)相同?
git reset --hard remotes/origin/HEAD
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.
如果您对此感到满意,并且没有任何本地未提交的更改:
git reset --hard origin/master
其中origin/master
是您推送到的分支。
ref-log将仍然包含返回的位,直到垃圾收集到期为止。 为了恢复回复,
git reset --hard HEAD@{1}
你可以恢复本地提交
git reset HEAD~N
其中N用于恢复提交次数。 一个例子:
如果你必须从本地恢复单一的提交,那么你可以使用
git reset HEAD~1
或者git reset HEAD ^
按照我的说法,你创build了一些你在中央仓库中提交的提交,然后你创build了更多的提交,但是这些提交都存在于本地。 这些都没有推动中央回购。
删除/恢复本地提交;
git reset HEAD~{number_of_commit}
简单地说,你打你的命令提示符上的git log
,并获得提交列表。 看一下,你现在创build了多less个提交,还有多less你需要恢复。
例如,你必须remove.revert你的两个最后提交然后命中
git reset HEAD~2
还有另一种方式来重置您的本地回购与中央回购。 但是,在这种情况下,您的本地提交将被删除,如果其他用户推送提交中央回购,那么您的回购将被更新。
命令是:
git reset --hard remotes/origin/HEAD