Git 推送被拒绝并且获取失败

标签 git github git-push

我正在自己的分支上工作,但在推送最后一次提交时遇到问题。

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/

相关文章:

未找到 Git 存储库

git - 我可以为所有 Git 事件更改本地驱动器上的默认目录吗?

git - 从 Github pull 请求中排除自述文件

github - 如何判断 github 存储库的质量?

github - 如何通过 github 操作和本地使 cypress 与 aurelia 一起工作?

git - Git Pull 和 Git Push 之间的死锁

python - 如何创建一个预提交 Hook ,在推送到服务器之前跟踪 Django 代码中的错误

git - "git push"是否推送来自其他分支的所有提交?

node.js - 已成功将 Node 应用程序部署到 OpenShift,OpenShift 仍显示默认页面

git 无法连接到github