我是git的新手,无法从google或stackoverflow找到确切的解决方案。我试过了 Undo git pull, how to bring repos to old state好吧,但没有成功。
我基本上有"initial"
和"pre_dev"
分支。通常我将我的初始分支代码合并到pre_dev分支。
但是今天我错误地将pre_dev
拉进initial
。现在源树正在显示推送通知到初始。所以请让我知道如何还原这个。因此,我不需要推动这些变化。
经过这么多尝试,我可以在源代码树中看到:
我不希望这种情况进入最初阶段。所以请帮助我。很抱歉再次提出这个问题,如果已经有人解决了任何其他stackoverflow问题。请作为初学者帮助我。感谢
答案 0 :(得分:3)
如果你想摆脱pre_dev
initial
的所有提交,我认为这些提交是偶然的,那么你可以使用git reset轻松完成,如下所示:
git reset --hard origin/initial
重要提示:在从initial
取消之前,您还将从pre_dev
分支机构中删除所有更改(如果有)。
答案 1 :(得分:1)
通常,您希望使用git reset --hard
将分支指针移回原位。正如Arpit所说,这个可能是origin/initial
;但是如果你想要保留在initial
上的未推送的更改(除了你想要丢弃的无意合并之外),那么你会想要别的东西。
默认情况下,pull会在当前分支上创建单个合并提交。那么在那种情况下你可以
git reset --hard HEAD^
如果拉动其他东西,可能更容易使用reflog。
git reflog initial
将显示您initial
ref最近指出的位置;标识表示所需状态initial
的提交。这可能是列表中最近的先前提交,这意味着
git reset --hard initial@{1}