如何解决 Git 中的问题:"Updates were rejected because a pushed branch tip is behind its remote counterpart"



我正试图将提交推送到远程,并得到以下错误消息:

$  git push origin master
To git@git1.eu1.frbit.com:hbrosuru.git
! [rejected]        ab68c0485d -> master (non-fast-forward)
error: failed to push some refs to 'git@git1.eu1.frbit.com:hbrosuru.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我想我把多个本地分支推送到一个远程分支,这让我在某个地方陷入了混乱,我想基本上清除服务器上的内容,然后从新分支推送整个分支。这可能吗,或者有更好的方法来修复这个错误吗?

Ps。这个远程分支托管在Fortrabbit上,所以我没有完全访问服务器来简单地删除分支并创建一个新分支,因为Fortrabby的部署机制是基于Git的。

我想基本上清除服务器上的内容,并从fresh推送整个分支。

这可能意味着力推请注意,强制推送通常不是一件安全的事情,尤其是在推送到像GitHub这样的共享源代码存储库时应该避免但在这种情况下,如果您正在推动更新PaaS服务器,这可能是可以的。

在强制推送之前,您可能需要使用gitkgit log --all --graph --decorate或其他工具以图形方式可视化分支,以确保一切都如您所期望的那样。

要强制将本地master分支推送到origin远程的master分支,请运行

git push --force-with-lease origin master:master

只有当您的本地分支相对于您要推送的分支是最新的时,--force-with-lease参数才会导致强制推送成功。(这可以防止意外覆盖您不知道的提交。)我强烈建议尽可能使用with-lease变量,而不是安全性较差的旧--force参数。

相关内容

  • 没有找到相关文章

最新更新