我有一个像 A -> B -> C -> D -> E
这样的修订。我试图回滚到 C
并将其作为新修订 F
提交,但似乎这不是正确的方法:我 git checkout C
然后做一些更改,然后 git commit
。但是,当我 git push origin HEAD
时,它会提示:
错误:无法推送到不合格的目的地:HEAD
目标 refspec 既不匹配远程上的现有 ref,也不匹配
以 refs/开头,我们无法根据源 ref 猜测前缀。
作为this SO question建议,我尝试了 git fetch -p origin
但它没有用。仍然收到相同的错误消息。
我的问题是如何摆脱这种情况并实现我最初的目标(回滚到 C
并将其提交给 F
)?
此外,正如这个问题所暗示的,我可以:
git rm -r .
git checkout HEAD~3 .
git commit
但我真的不想 git rm -r .
因为有很多未跟踪但有用的东西。
最佳答案
听起来您正在寻找 git revert
。在你的情况下:
git revert E D
之后您可以 rebase 以将两个还原提交压缩在一起。
关于git - "error: unable to push to unqualified destination: HEAD"如何解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18220871/