git - "error: unable to push to unqualified destination: HEAD"如何解决

标签 git

我有一个像 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/

相关文章:

Git:显示分支之间的差异,忽略 merge 的提交

git - 为什么我需要 SSH 授权才能克隆公开可用的 Git 存储库?

git - 我如何摆脱我的 git repo 中的大包文件?

git - 我怎样才能 git clone 一个特定的版本?

git - 试图了解 Travis CI 的作用以及何时应该使用它

node.js - 由于文件名太长,Git Extensions 正在崩溃。我该如何解决这个问题?

git - 回滚到上次 git 提交

linux - Git、Gitolite、部署和 Linux 权限

git 重命名许多文件和文件夹

git - 致命 : Not possible to fast-forward, 中止