Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Git还原本地提交_Windows_Git_Msysgit - Fatal编程技术网

Windows Git还原本地提交

Windows Git还原本地提交,windows,git,msysgit,Windows,Git,Msysgit,我在windows上的phpstorm中连接了一个git回购。我提交了一些变更集,然后将它们推到我们的“中央回购”中。在此之后,我又做了一些承诺。我不再希望这些承诺没有被推到中央回购。如何清理我的工作副本以使其与中央回购(原始)相同?如果您对此有把握并且没有任何未提交的本地更改,请执行以下操作: 其中origin/master是您推送到的分支 ref日志仍将包含还原的位,直到垃圾回收使其过期。要恢复恢复,请执行以下操作: git reset --hard HEAD@{1} 优于/HEAD,因为

我在windows上的phpstorm中连接了一个git回购。我提交了一些变更集,然后将它们推到我们的“中央回购”中。在此之后,我又做了一些承诺。我不再希望这些承诺没有被推到中央回购。如何清理我的工作副本以使其与中央回购(原始)相同?如果您对此有把握并且没有任何未提交的本地更改,请执行以下操作:

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

ref日志仍将包含还原的位,直到垃圾回收使其过期。要恢复恢复,请执行以下操作:

git reset --hard HEAD@{1}
优于
/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 HEAD~{number_of_commit}
简单地说,在命令提示符下点击
git log
,获得提交列表。看一看,您现在已经创建了多少次提交,还有多少次需要恢复

例如,您必须删除。还原最后两次提交,然后单击

git reset HEAD~2
有另一种方法可以通过中央回购重置本地回购。但是,在这种情况下,您的本地提交将被删除,如果其他用户在中央回购上推送提交,那么您的回购将被更新

命令是:

git reset --hard remotes/origin/HEAD

您可以通过以下方式还原本地提交:

git reset HEAD~N
其中N用于恢复提交的数量。例如:

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

git reset HEAD~1
或 git reset HEAD^

我知道这是一种“我早就告诉过你了”的评论,但这就是git用户强烈主张在你做任何工作之前创建一个新的本地分支的原因,因为这样你就可以切换回master并从这里开始一个新分支,而不必担心删除以前的提交(在某些情况下,您可能希望稍后再讨论这些问题)。
git reset --hard remotes/origin/HEAD
git reset HEAD~N
git reset HEAD~1