从选定的分支恢复git pull

时间:2017-07-20 15:43:06

标签: git version-control atlassian-sourcetree git-revert

我是git的新手,无法从google或stackoverflow找到确切的解决方案。我试过了  Undo git pull, how to bring repos to old state好吧,但没有成功。

我基本上有"initial""pre_dev"分支。通常我将我的初始分支代码合并到pre_dev分支。

但是今天我错误地将pre_dev拉进initial。现在源树正在显示推送通知到初始。所以请让我知道如何还原这个。因此,我不需要推动这些变化。

经过这么多尝试,我可以在源代码树中看到:

enter image description here

我不希望这种情况进入最初阶段。所以请帮助我。很抱歉再次提出这个问题,如果已经有人解决了任何其他stackoverflow问题。请作为初学者帮助我。感谢

2 个答案:

答案 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}