【问题标题】:revert git pull from selected branch从选定的分支恢复 git pull
【发布时间】:2026-02-22 13:45:01
【问题描述】:

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

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

但是今天我不小心把pre_dev拉到initial了。现在源树将推送通知显示为初始状态。所以请让我知道如何恢复它。这样我就不需要推动这些更改。

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

我不希望这进入初始状态。所以请帮助我。很抱歉再次问这个问题,如果有人已经解决了任何其他 * 问题。请帮助我作为初学者。谢谢

【问题讨论】:

  • 你的树长什么样子?

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


【解决方案1】:

通常您想使用git reset --hard 将分支指针移回原来的位置。正如 Arpit 所说,这可能origin/initial;但是,如果您有未推送的更改想要保留在 initial 上(除了您想要丢弃的无意合并),那么您会想要其他东西。

默认情况下,拉取会在当前分支上创建一个合并提交。所以在那种情况下你可以

git reset --hard HEAD^

如果 pull 做了其他事情,那么使用 reflog 可能会更容易。

git reflog initial

将显示您的initial ref 最近指向的位置;识别代表initial 所需状态的提交。这可能是列表中最近的先前提交,这意味着

git reset --hard initial@{1}

【讨论】:

    【解决方案2】:

    如果您想从initial 中删除我认为是意外完成的所有pre_dev 提交,那么您可以使用git reset 轻松完成,如下所示:

    git reset --hard origin/initial
    

    重要提示:您还将从 initial 分支中释放您在从 pre_dev 提取之前所做的所有更改(如果有)。

    【讨论】:

      最近更新 更多