在尝试重新定位到 master 之后,我在我的分支上弄得一团糟。
在我的提交历史中,我进行了相当多的重构(重命名和移动),以及删除类。而且我不应该推送到远程存储库。(我知道,从那以后我就在踢自己)。
然而,该做的就做完了。现在,由于 rebase 重写了历史记录和提交(?)(通过 rebase 期间的冲突解决),我无法重置为更早的提交 HEAD~2 重新开始,所有提交都被重写并且提交错误。
我可以从 git 获取 HEAD~2 的快照,我有没有办法将快照合并(重新设置)回我的分支,回滚更改并重新开始?
先谢谢了!</p>
大卫
更新,从我们内部的 git 网页,我可以看到之前的提交:
commit 6f577850231fed07eebdacd3bc5862f84356d803
tree 8be1d60056697bc1b8d7284c4e85a6d1738ac3e2 tree | snapshot
parent 1ca61d4dd69b7be649906834d44bb7fec390153d commit | diff
我可以通过单击“快照”链接在 gz 中下载快照。但是,当我尝试这样做时:
git checkout -b newBranch 6f577850231fed07eebdacd3bc5862f84356d803
我有:
fatal: reference is not a tree: 6f577850231fed07eebdacd3bc5862f84356d803
如果我运行:
git checkout -b --force newBranch 6f577850231fed07eebdacd3bc5862f84356d803
我有:
fatal: git checkout: updating paths is incompatible with switching branches.
我猜这个提交只存在于远程存储库中?那我怎样才能在git中签出呢?
解决方案:这个 SO 答案是我的问题的解决方案:Undoing a git rebase