混帐错误:未能推一些裁判

出于某种原因,我现在不能推,而我昨天可以推。 也许我搞砸了configs什么的。

这是发生了什么事情:

当我使用git push origin master

gitbashscr

我的工作目录和远程存储库的外观如下所示:

在这里输入图像描述

如果GitHub仓库看到新的提交,当你在本地工作,我会build议:

git pull --rebase git push 

完整的语法是:

 git pull --rebase origin master git push origin master 

这样,你会重播( --rebase部分)你的本地提交的最新更新的origin/master (或origin/yourBranchgit pull origin yourBranch )。

请参阅第6章 “使用Git Pocket Book重新 绑定”进行更完整的示例。

我会推荐一个:

 git push -u origin master 

这将build立您的本地主分支和上游分支之间的跟踪关系。
之后,任何未来推动该分支可以用一个简单的方法来完成:

 git push 

请参阅“ 为什么需要显式推送新分支? ”。


由于OP已经重置并在origin/master之上重新提交它的提交 :

 git reset --mixed origin/master git add . git commit -m "This is a new commit for what I originally planned to be amended" git push origin master 

没有必要pull --rebase

注意: git reset --mixed origin/master也可以写成git reset origin/master ,因为--mixed选项是使用git reset时的默认选项。

有没有人试过:

 git push -f origin master 

这应该可以解决问题。

如果你只是使用git init并添加了你的文件与git add . 或类似的东西,并已添加您的远程分支它可能是你只是没有提交( git commit -m 'commit message' )本地任何东西推到远程…我只是有这个错误,这是我的问题。

我在github的帮助下find了这个问题的解决scheme。

你可以从下面看到: 处理非快进错误

它说:

您可以通过获取并合并在远程分支上所做的更改和您在本地进行的更改来解决此问题:

 $ git fetch origin # Fetches updates made to an online repository $ git merge origin branch # Merges updates made online with your local work 

或者,你可以简单地使用git pull来同时执行两个命令:

 $ git pull origin branch # Grabs online updates and merges them with your local work 

我有同样的问题。 我得到这个问题,因为我没有做任何提交,甚至没有提交初始化,我仍然试图推动。

一旦我做了git commit -m "your msg" ,然后一切工作正常。

如果你正在使用gerrit,这可能是由提交中不适当的Change-id导致的。 尝试删除Change-Id,看看会发生什么。

请记住在推送到Github回购之前提交您的更改。 这可能会解决您的问题。

那么,如果没有上述的答案正在工作,如果你最近已经搞砸了ssh-add东西。 尝试

 ssh-add -D 

在我的情况下,这个错误发生是因为在我们的GitLab版本上发生了一些维护。