如何在不解决 git 合并冲突的情况下取回隐藏的更改
How to get back stashed changes without solving git pull merge conflicts
我有三个分支,分支a
,b
和分支HotFix
。
我在分支 HotFix 上工作,在那里我正在解决一个问题,然后我接到了另一项工作的电话。我需要切换到分支 b
。我隐藏了当前的分支更改,然后在 git pull origin b
.
之后执行 git checkout b
提取更改后 git bash 向我显示合并冲突,这些文件的数量确实很大,我不想手动解决冲突。我失去了我的本地分支 HotFix
及其工作。有没有办法在不解决冲突的情况下取回隐藏的更改。
我认为我正在寻找 git unpull
或 git reverse pull
。
您 运行 的命令是 git pull origin b
:它是两个命令的组合:
- 首先
git fetch origin b
更新一个名为 origin/b
, 的本地 b运行ch
- 然后
git merge origin/b
尝试将第一步中获取的更改合并到本地 b运行ch b
.
冲突发生在第二步:合并。虽然它们存在冲突,但合并并未完成,因此您可以使用命令 git merge --abort
.
取消
如果由于某种原因合并结束,您仍然可以撤消它,方法是使用命令 git reset --hard HEAD^
.
返回历史记录中的一步
简而言之,当您在 b运行ch b
上时:git merge --abort
应该可以,如果没有,git reset --hard HEAD^
也可以。
您需要执行两个操作。
中止合并
您可以使用
git merge --abort
;或
git reset HEAD --hard
(这个应该没有必要
获取您的藏品
- 结帐
HotFix
git checkout hotfix
;然后
- 使用
git stash apply
应用存储。
祝你好运!
我有三个分支,分支a
,b
和分支HotFix
。
我在分支 HotFix 上工作,在那里我正在解决一个问题,然后我接到了另一项工作的电话。我需要切换到分支 b
。我隐藏了当前的分支更改,然后在 git pull origin b
.
git checkout b
提取更改后 git bash 向我显示合并冲突,这些文件的数量确实很大,我不想手动解决冲突。我失去了我的本地分支 HotFix
及其工作。有没有办法在不解决冲突的情况下取回隐藏的更改。
我认为我正在寻找 git unpull
或 git reverse pull
。
您 运行 的命令是 git pull origin b
:它是两个命令的组合:
- 首先
git fetch origin b
更新一个名为origin/b
, 的本地 b运行ch
- 然后
git merge origin/b
尝试将第一步中获取的更改合并到本地 b运行chb
.
冲突发生在第二步:合并。虽然它们存在冲突,但合并并未完成,因此您可以使用命令 git merge --abort
.
如果由于某种原因合并结束,您仍然可以撤消它,方法是使用命令 git reset --hard HEAD^
.
简而言之,当您在 b运行ch b
上时:git merge --abort
应该可以,如果没有,git reset --hard HEAD^
也可以。
您需要执行两个操作。
中止合并
您可以使用
git merge --abort
;或git reset HEAD --hard
(这个应该没有必要
获取您的藏品
- 结帐
HotFix
git checkout hotfix
;然后 - 使用
git stash apply
应用存储。
- 结帐
祝你好运!