如何将revert/reset local master转为HEAD?

How to revert/reset local master to HEAD?

我正在尝试将旧提交推送到 heroku/master,但如果我没记错的话 git push 会将本地主服务器推送到远程仓库。所以我试图让我的本地主人与我的 HEAD 相匹配。

我正在努力做到这一点而不会丢失我所做的承诺,这样我也许可以在需要时返回它们。

我尝试过的事情:

# this only set my HEAD on the wanted commit.
$ git reset --hard HEAD
$ git reset --hard 055c700

# this made a new branch called HEAD instead of my actual HEAD, which was a pain to delete afterwards 
$ git checkout -B "HEAD" "master"

最简单的方法是:

  1. 首先将您的 HEAD 指向您的 master $ git checkout master
  2. 复制分支$ git checkout -b new_master
  3. 检查 master 分支 $ git checkout master
  4. 重置为您希望您的 master 指向的提交 $ git reset --hard <commit-number> 在您的情况下 $ git reset --hard 055c700
  5. 强制推送 master 到 heroku $ git push -f heroku master
  6. 删除分支new_master

您似乎将术语 HEAD 与实际分支混淆了。 HEAD 只是指向您所在的当前分支的最后一次提交的指针。所以创建一个名为 HEAD 的分支不会有任何效果。如果您在分支 HEAD 上,则指针 HEAD 将位于最后一次提交处。如果您在 master 上,它将指向 master

中的最后一次提交