我开始对我的代码库进行更改,但没有意识到我在一个旧主题分支上.要转移它们,我想将它们藏起来,然后将它们应用到主人的新分支中.我曾经git stash pop将正在进行的工作更改转移到这个新分支,忘记在创建新分支之前我没有将新的更改提取到master中.这导致了一堆合并冲突并且丢失了我的更改(因为我使用了pop).
一旦我正确地重新创建了新分支,我如何才能恢复我的隐藏更改以正确应用它们?
acj*_*jay 587
事实证明,Git足够聪明,如果它不能干净利落,就不会丢下藏品.我能够通过以下步骤进入所需状态:
git reset HEAD .git stashgit checkout mastergit fetch upstream; git merge upstream/mastergit checkout new-branch; git rebase mastergit stash apply stash@{1}flo*_*ori 314
幸运的是git stash pop并没有改变藏匿在冲突的情况下!
所以没什么,担心,只需清理你的代码并再试一次.
说你的代码库之前是干净的,你可以回到那个状态:git checkout -f
然后做你忘记的东西,例如,git merge missing-branch
之后git stash pop再次开火,你得到相同的藏匿,之前发生冲突.
注意:存储是安全的,但工作目录中未提交的更改不是.他们可能搞砸了.
ano*_*932 36
这里的说明有点复杂,所以我将提供一些更直接的内容:
git reset HEAD --hard 放弃对当前分支的所有更改
... 必要时进行中介工作
git stash pop 准备好以后再重新弹出存储
All*_*h.G 31
git checkout -f
Run Code Online (Sandbox Code Playgroud)
必须工作,如果你以前的状态是干净的。
Gab*_*son 20
git reset --merge
最简单的命令和适用于任何地方,包括。git stash pop.
小心!您将丢失对未跟踪文件的所有更改。