git

取消 git stash pop, 这导致冲突合并

我开始改变我的代码基础,而不是意识到我在旧的专题分支。 要传输它们,我想隐藏它们,然后应用于新的向导分支。 我用了
git stash pop

, 转让 work-in-progress 更改了这个新的分支,忘了我没有释放新的变化 master 在创建新分支之前。 这导致了一堆冲突冲突和损失我的变化缓存。 /我用过 pop/.

一旦我正确重新创建一个新分支,我如何恢复隐藏的更改才能正确应用它们?
已邀请:

郭文康

赞同来自:

事实证明, Git 如果它不纯粹申请,则足够智能而不是放弃缓存。 我能够通过以下步骤达到所需的状态:

消除合并冲突:
git reset HEAD .

/注意到这一点 trailing/

保持冲突合并 /以防万一/:
git stash


返回主人:
git checkout master


要拔出最新的变化:
git fetch upstream; git merge upstream/master


修复我的新分支:
git checkout new-branch; git rebase master


申请正确的隐藏变更 /现在在堆栈中第二个地方/:
git stash apply stash@{1}

石油百科

赞同来自:

幸运的是,
git stash pop

不是

在发生冲突时更改缓存!

所以你没有什么可担心的,只是清理你的代码并再试一次。

例如,您的代码库是清洁的,您可以使用以下方式返回此条件:
git checkout -f


例如,做你忘记的东西
git merge missing-branch


之后,再次拍摄
git stash pop

, 你得到一个

相同的

以前最谨慎的冲突。

请记住:缓存是安全的,但是

unf

当然不是工作目录的变化。 他们可能会困惑。

冰洋

赞同来自:

这里的说明有点复杂,所以我会提供一些更简单的东西:


git reset HEAD --hard

放弃当前分支机构的所有变化


...

根据需要进行中间工作


git stash pop

再次重新弹出,再次保存您的准备就绪

冰洋

赞同来自:

git checkout -f


如果您以前的状态清洁,应该工作。

要回复问题请先登录注册