首页 > 解决方案 > 如何在不解决 git pull 合并冲突的情况下取回隐藏的更改

问题描述

我有三个分支, branchabbranch HotFix

我正在研究分支 HotFix,我正在解决一个问题,然后我接到了另一项工作的电话。我需要切换到分支b。我隐藏了我当前的分支更改,然后我再做git checkout bgit pull origin b

拉动更改后 git bash 向我显示合并冲突,这些文件数量确实很大,我不想手动解决冲突。我失去了当地的分支机构HotFix及其工作。有没有办法在不解决冲突的情况下取回隐藏的更改。


我认为我正在寻找一个git unpullor git reverse pull

标签: gitgit-mergegit-pull

解决方案


您运行的命令是git pull origin b:它是两个命令的组合:

  • 首先git fetch origin b更新一个名为的本地分支origin/b
  • 然后git merge origin/b尝试将第一步中获取的更改合并到本地分支b中。

冲突发生在第二步:合并。虽然它们是冲突的,但合并并未完成,因此您可以使用 command 取消git merge --abort

如果由于某种原因合并结束,您仍然可以撤消它,方法是使用命令返回历史记录中的一步git reset --hard HEAD^

简而言之,当您在分支上时bgit merge --abort应该可以工作,如果没有,git reset --hard HEAD^则可以。


推荐阅读