我在自己的分支上工作,我在推送上次提交时遇到问题。
1)以前我用错误的提交消息提交了一些更改,并通过git commit --amend命令更新了提交消息。
现在我能够通过之前的提交消息在我的分支上的git存储库中看到这个提交。 (修改前的留言)
2)现在我提交了另一个更改,当我想推送它时,除了我当前的提交之外,我看到之前修改的提交在推送列表中。
但是我无法推动它们,git说我需要合并它们但是当我点击合并时它会说:
17:41获取失败:'refs / remotes / origin / mybr'下仍有引用
17:41推送被拒绝:推送被拒绝,更新失败并出现错误。
我不知道mybr究竟来自哪里。这不是我正在研究的分支。
我该如何解决这个问题呢?
是的,正如Tyler指出的那样,你试图推送到遥控器的历史与分支的远程历史不匹配,因为你重新编写了一个现在在你的新历史中不存在的提交。
如果这是一个你独自工作的功能分支,那么告诉git你确实想要推送这个历史,即使它与当前的历史不匹配:
git push --force <remoteName> <branchName>
另一方面,如果你与人分享分支,那就不可能了。但我想你会这么说的。
我建议你在正确运行的哈希位置创建一个新分支,然后将文件复制到这个新分支并提交并推送到原点
之后强制您的分支到新分支并删除新分支。这应该让事情顺利进行