无法将Ref推送到远程尝试先运行Pull以集成您的更改

zy1mlcev  于 2022-09-21  发布在  Git
关注(0)|答案(9)|浏览(3884)

当我试图从VScode推送到GitHub时,我一直收到这个错误。我以前曾按照与现在完全相同的步骤推送到那个存储库。找不到此错误的原因是什么?

j91ykkif

j91ykkif1#

在您进行更改之前,只要您的本地分支机构和远程分支机构不在同一点上,您就会收到此try running pull first to integrate your changes

remote branch commits : A -> B -> C -> D
local branch commits  : A -> B -> C -> Local_Commits

现在很明显,有一个变化D,你没有在本地集成。因此,您需要rebase,然后按下,这将导致以下结果。

remote branch commits : A -> B -> C -> D
local branch commits  : A -> B -> C -> D -> Local_Commits

要解决您的问题,请执行以下操作

git pull --rebase origin branchname
git push origin branchname
ca1c2owp

ca1c2owp2#

一个可能的原因是您没有足够的权限来推送到当前分支(可能是主分支)。您需要要求项目维护人员给予您足够的权限,或者您需要将更改推送到另一个分支并发出合并/拉入请求。

fhity93d

fhity93d3#

在我的例子中,我使用了git push --no-verify。啊,真灵

disbfnqx

disbfnqx4#

VS代码将为一系列不同的错误显示此消息,其中远程拒绝您的提交,而不仅仅是所描述的问题。

在我的例子中,因为我正在向存储库提交一个大文件,所以出现了错误“该对象将使存储库的大小增加38642606字节(限制为10485760字节)”。

如果你遇到这个问题,而不是因为你与Remote不同步(根据最上面的答案),我建议你实际使用Git CLI,它会给你一个更有用的错误消息。

cbjzeqam

cbjzeqam5#

我在我的Azure DevOps Repos环境中收到此消息,因为服务器在主分支上有一个分支策略,需要批准拉取请求,而我正在尝试直接推送到主分支。即使在拉出和重新定位之后,也会出现相同的消息。我不认为VS代码真的知道如何解释从服务器返回的这个特定的错误,所以它给出了一般的消息。如果我直接用git尝试相同的推送,它会显示一个远程拒绝错误,这解释了这个问题。所以我的答案只适用于这1种狭义的情况,但它肯定会导致在推送VS代码时出现相同的错误消息。

nqwrtyyt

nqwrtyyt6#

我遇到了类似的问题,尝试下面这些案例,下面的任何一个案例都可能解决您的问题:

1.在解决合并冲突后,它期待您提交您的更改:
git commit -m "resolved merge conflicts or any other message"
1.点击VSCode中的“Git Pull From”选项并解决冲突(如果有)。
1.git pull --rebase origin develop

rwqw0loc

rwqw0loc7#

在我的例子中,我得到它是因为(在个人项目中)我推动了提交,然后我添加了更改并执行了git commit --amend

因此,我最终得到了两个相同标题但ID不同的提交。一个在origin/HEAD上,一个在HEAD -> master上。在这种情况下,如果它是在一个个人项目上,即一个没有其他人提交的项目,那么可以使用push --force

否则请查看此帖子:How do I push amended commit to the remote Git repository?

zsbz8rwp

zsbz8rwp8#

有时候这不是你的错。如果收到完全意外的错误,不要忘记检查https://www.githubstatus.com/。这很糟糕,但至少它们都是黄色的,而不是红色的

s5a0g9ez

s5a0g9ez9#

此问题可能与本地Git挂钩有关,请尝试以下命令,它应该会起作用:

git pull --rebase origin <yourBranchName>
git push origin <yourBranchName>
git push --no-verify

相关问题