Git - 让当地的HEAD成为新的主人

Meh*_*way 14 git

我决定退回一些提交,因为我遵循的路径是错误的.所以我检查了Added cordova to .gitignore提交,并做了一些修改.如下图所示:

在此输入图像描述

现在,当我推送新修改时,会显示一条错误消息:
error: src refspec (detached from aad6423) does not match any.

我怎么能告诉git丢弃以前的提交(紫色)并继续我当地的HEAD作为主人?

Tav*_*nes 18

让HEAD成为新的本地人master:

$ git checkout -B master
Run Code Online (Sandbox Code Playgroud)

强制推动您的更改:

$ git push -f
Run Code Online (Sandbox Code Playgroud)

  • @BrianJ同意,Max的回答是你应该在99%的情况下做的.但这就是你如何做到OP所要求的. (2认同)

Max*_*Max 15

即使你不再需要旧的分支,git也不喜欢重写历史记录或丢弃更改.只需还原和合并.

git branch new_master              # name current detached HEAD
git checkout master                # switch back to master
git revert --no-edit HEAD~4..HEAD  # create commits reverting back to where the history split
git merge new_master               # merge
git branch -d new_master           # don't need it anymore
Run Code Online (Sandbox Code Playgroud)

  • Git 使另一个简单的任务变得困难。Git 开发人员应该在他们的 SDLC 循环中使用 Stack Overflow 作为反馈。他们需要聘请 UX 专家,因为他们显然无法自己正确地进行 git。 (2认同)