我开始对我的代码库进行更改,没有意识到我在一个旧的主题分支上。为了转移它们,我想把它们藏起来,然后将它们应用到 master 的一个新分支上。我曾经git stash pop将进行中的更改转移到这个新分支,忘记了在创建新分支之前我没有将新更改拉入 master。这导致了一堆合并冲突并丢失了我的更改的干净存储(因为我使用了 pop)。
git stash pop
正确重新创建新分支后,如何恢复隐藏的更改以正确应用它们?
事实证明,Git 足够聪明,不会在不干净应用的情况下丢弃存储。通过以下步骤,我能够达到所需的状态:
git reset HEAD .
git stash
git checkout master
git fetch upstream; git merge upstream/master
git checkout new-branch; git rebase master
git stash apply stash@{1}