Answers:
事实证明,如果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}
git stash pop
:“应用状态可能会因冲突而失败;在这种情况下,不会从存储列表中删除该状态。您需要git stash drop
手动解决冲突,然后手动调用。” (git-scm.com/docs/git-stash)–
幸运的是git stash pop
并没有改变藏匿在冲突的情况下!
因此,无需担心,只需清理代码并重试即可。
假设您的代码库之前是干净的,则可以使用以下命令返回到该状态:git checkout -f
然后做您忘记的事情,例如,git merge missing-branch
之后git stash pop
再次触发并获得与之前冲突的相同存储库。
注意:存储是安全的,但是,工作目录中未提交的更改不是安全的。他们可能会搞砸。
git stash pop
尝试自动合并,冲突并保留它。
git stash pop
根据需要随时调用它,直到结束而没有冲突。因此,发生冲突后,是的,工作目录陷入混乱,但是,您可以清理它并git stash pop
再次调用。
git checkout -f
!
这里的说明有点复杂,所以我将提供一些更简单的方法:
git reset HEAD --hard
放弃对当前分支的所有更改
...
根据需要执行中介工作
git stash pop
准备好以后再重新弹出存储库
git stash drop
作为摆脱#2多余垃圾的最后一步。