【问题标题】: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 提取之前所做的所有更改(如果有)。