我正在自己的分支上工作,但在推送最后一次提交时遇到问题。
1) 之前我用错误的提交消息提交了一些更改,并通过 git commit --ammend 命令更新了提交消息。
现在我可以在我的分支上的 git 存储库上看到此提交以及之前提交的消息。 (修改前留言)
2)现在我提交了另一个更改,当我想要推送它时,除了我当前的提交之外,我还看到之前修改的提交也在推送列表中。
但是我无法推送它们,git 说我需要 merge 它们,但是当我单击 merge 时,它说我:
17:41 Fetch failed: there are still refs under 'refs/remotes/origin/mybr'
17:41 Push rejected: Push was rejected, and update failed with error.
我不知道 mybr 实际上来自哪里。我正在处理的不是我的分支。
我该如何解决这个问题?
最佳答案
是的,正如 Tyler 指出的那样,您尝试推送到远程的历史记录与分支的远程历史记录不匹配,因为您重写了一个提交,而该提交现在在您的新分支中不存在。历史。
如果这是一个您独自工作的功能分支,只需告诉 git 您确实想要推送此历史记录,即使它与当前的一个:
git push --force <remoteName> <branchName>
另一方面,如果您与其他人共享分支,则不不是正确的选择。但我想你也会这么说。
关于Git 推送被拒绝并且获取失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55636527/