我正试图强制将功能分支的基础推到远程存储库。为了更加安全,我尝试使用--force-with-lease
来确保自上次获取分支以来,该分支中没有发生其他更改。
由于我不了解的原因而失败:
$ git branch
* my-branch
master
$ git push --force-with-lease origin my-branch -u
To gitlab.com:example/my-project.git
! [rejected] my-branch -> my-branch (stale info)
error: failed to push some refs to 'git@gitlab.com:example/my-project.git'
我尝试进行获取以查看我的本地缓存是否以某种方式不同步:
$ git fetch
$ git push --force-with-lease origin my-branch -u
To gitlab.com:example/my-project.git
! [rejected] my-branch -> my-branch (stale info)
error: failed to push some refs to 'git@gitlab.com:example/my-project.git'
我尝试简化一下push命令:
$ git push --force-with-lease
To gitlab.com:example/my-project.git
! [rejected] my-branch -> my-branch (stale info)
error: failed to push some refs to 'git@gitlab.com:example/my-project.git'
我尝试将支票限制在我的分支机构
$ git push --force-with-lease=my-branch:origin/my-branch
To gitlab.com:example/my-project.git
! [rejected] my-branch -> my-branch (stale info)
error: failed to push some refs to 'git@gitlab.com:example/my-project.git'
如您所见,它每次都会以相同的方式失败。
为什么我的推送失败,如何解决?
答案 0 :(得分:0)
在这种情况下,原来的问题是远程分支已被删除,但是在我的本地仓库中仍然有它的副本。默认情况下,抓取不会删除本地副本,这就是为什么它无效的原因。
在我的初始--prune
中添加git pull
选项(在重新设置基准之前)可以解决此问题。