2017-09-05 131 views
0

我的起源/主人以某种方式得到了一些不需要的合并。因此,我试图将原点/主点恢复到之前的提交。当我这样做时,我签出远程HEAD并运行$ git reset --hard fcced95d565a4e54e81f15d1efeab5fdf7a483ca。然后我试图基本推动这个提交并运行$ git push -f origin master。但是,这样做实际上将原点/主点带入了我的本地所在的状态,并且这是我想要恢复提交给我的DEATACHED HEAD OF master的位置的方式。我该如何纠正这个问题?恢复从主分离的头部更旧的提交更改

回答

0

假设你还没有还覆盖当地master分支,你可以尝试以下方法:

git checkout master 
git push --force origin master 

这是假设你的本地master是活得很好,并且通过污点你做了什么它的远程副本。如果你 nuked你当地的master分支,那么你需要做更多的工作。

首先,我们可以使用一个名为reflog的工具来查找在您覆盖之前提交的前一个头部master。键入git reflog,这将提取最近在回购中分行负责人活动的提交列表。您将不得不筛选此列表以查找master之前的头部提交。 Stack Overflow和Git手册很好地介绍了如何浏览reflog。

然后,一旦你的SHA-1散列的承诺,只是做从master如下:

git reset --hard <SHA-1 of previous HEAD> 

这将重置本地master正确的提交。然后再用力推覆盖远程分支:

git push --force origin master