撤消混帐隐藏popup导致合并冲突

我开始更改我的代码库,没有意识到我在一个旧的主题分支。 转移他们,我想把他们藏起来,然后把他们应用到一个新的分支从主。 我用git stash pop将正在进行的更改转移到这个新的分支上,忘记我没有在创build新的分支之前将新的更改拉到master中。 这导致了一堆合并冲突和丢失我的变化(因为我使用stream行)一个干净的藏匿处。

一旦我正确地重新创build了新的分支,我该如何恢复我的隐藏更改以正确应用它们?

事实certificate,Git足够聪明,如果不能干净地应用,就不要掉下来。 我能够通过以下步骤达到所需的状态:

  1. 为了解除合并冲突: git reset HEAD .
  2. 保存冲突的合并(以防万一): git stash
  3. 要回到master: git checkout master
  4. 拉取最新的变化: git fetch upstream; git merge upstream/master git fetch upstream; git merge upstream/master
  5. 纠正我的新分支: git checkout new-branch; git rebase master git checkout new-branch; git rebase master
  6. 要应用正确的隐藏更改(现在是堆栈中的第二个): git stash apply stash@{1}

幸运的是,在冲突情况下, git stash pop不会改变存储空间!

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

说你的代码库是干净的,你可以回到那个状态: git checkout -f
然后做你忘了的东西,例如git merge missing-branch
之后,只是再次发射git stash pop和你得到同样的藏匿,以前冲突。