如何在不解决git pull合并冲突的情况下找回隐藏的更改

时间:2018-10-10 05:13:55

标签: git git-merge git-pull

我有三个分支,分支ab和分支HotFix

我当时正在分支HotFix上工作,在那里我解决了一个问题,然后接到了另一个工作的电话。我需要切换到分支b。我隐瞒了当前的分支更改,然后在git checkout b之后执行了git pull origin b

在完成更改后,git bash向我显示了合并冲突,这些确实是大量文件,我不想手动解决冲突。我丢失了本地分支机构HotFix及其工作。有什么方法可以解决隐患,而不解决冲突。


我想寻找的是git unpullgit reverse pull

2 个答案:

答案 0 :(得分:1)

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

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

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

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

简而言之,当您在分支机构b上时:git merge --abort应该可以工作,否则,git reset --hard HEAD^可以工作。

答案 1 :(得分:0)

您需要执行两项操作。

  1. 中止合并

    您可以使用

    • git merge --abort;或
    • git reset HEAD --hard(这不是必需的
  2. 获得保存的工作

    1. 使用HotFix结帐git checkout hotfix;然后
    2. 使用git stash apply应用存储。

祝你好运!