git推送失败,没有冲突
我已经阅读了一些关于git推送失败的解释,但似乎没有一个能涵盖这个案例 我无法将我的本地更改推送到远程存储库,即使在拉取之后并且没有冲突git推送失败,没有冲突,git,Git,我已经阅读了一些关于git推送失败的解释,但似乎没有一个能涵盖这个案例 我无法将我的本地更改推送到远程存储库,即使在拉取之后并且没有冲突 $ git pull Already up-to-date $ git st # On branch unstable nothing to commit (working directory clean) $ git push To ssh://<url> ! [rejected] master -> master (n
$ git pull
Already up-to-date
$ git st
# On branch unstable
nothing to commit (working directory clean)
$ git push
To ssh://<url>
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'ssh://<url>'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
$git pull
已经更新
$git街
#关于分支不稳定
没有要提交的内容(工作目录清理)
$git推送
要使用ssh,请执行以下操作://
! [已拒绝]主机->主机(非快进)
错误:无法将某些引用推送到“ssh://”
为防止丢失历史记录,拒绝了非快进更新
在再次按下之前,合并远程更改(例如“git pull”)。见
有关详细信息,请参阅“git推送--帮助”的“关于快进的注意”部分。
当然是我的存储库的真实URL
拉动没有变化,没有冲突,我不确定还有什么会导致失败
我相信我已经把一切都安排好了:
$ git remote -v
origin ssh://<url> (fetch)
origin ssh://<url> (push)
$ git branch -v
master 175a09d [behind 18] openReview must now be called from thread other than main.
* unstable c9e5cab Progress on attachments.
$git remote-v
源ssh://(获取)
源ssh://(推送)
$git分行-v
现在必须从主线程以外的线程调用master 175a09d[behind 18]openReview。
*附件上的c9e5cab进度不稳定。
在过去,我刚刚删除了我的本地存储库。然而,这种情况发生得更频繁
完全公开-我的git有点生锈,所以这可能不是100%正确
您的本地“主”分支似乎位于“原始”主分支的后面。当您运行“git push”时,它将尝试用相应的本地分支更新所有远程分支。要只推送当前分支,请尝试
git-push-origin
。此外,如果您希望本地主分支获得最新信息,请签出主分支并运行git pull
git基本上是在抱怨您的本地历史与远程历史不同。如果重新设置分支的基础,或者通常在推送已提交的修订后进行任何修改,就会发生这种情况
要解决这个问题,就去做吧
git push -f #Warning, this will essentially clobber revisions on origin with your local revisions.
重要的一点是“非快进更新被拒绝”。通常情况下,Git只需将您的修订版复制到远程存储库,然后直接复制到最新的修订版。但是,如果您的历史记录不同(将其推到远程后,您在本地编辑了一个修订版),则它不能只是快进。我这些天也遇到了同样的问题,您正在尝试进行“非快进”更新。正如您在帮助中所读到的,键入
git push--help
并阅读“关于快进的说明”,您在本地启动了一个与您的repo中不同的历史记录。如果您确信您的本地分支机构是最新的,您可以使用git push--force
强制推送,以覆盖您的本地回购。push--force
应该是最后的手段。请参见@DanR的答案。+1,因为——武力是最后的手段。很少有情况下你会使用武力--强制对其他用户有严重的副作用。push--force
应该是最后的手段。请看@DanR的答案,你是对的。问题是主分支,我没有意识到我必须先拉它。另外,这是否意味着git pull--all
是git push
的真正对应物?