尝试推送到远程分支时,git错误

我从git克隆了仓库A的主分支,并创build了我自己的分支叫做Li。 前段时间我做了一些改变,把李的内容推到遥远的李。

现在我已经把远程主机的一些更新从我的本地主分支,从本地主分支,到当地的李,我试图推动从本地李更新到远程李。 但是,当我尝试运行时:

git checkout Li git push origin Li 

我得到以下错误:

 error: failed to push some refs to 'git@github.com:anodejs/system.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Merge the remote changes (eg 'git pull') hint: before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

请注意,我的本地主分支更新(我调用了git pull origin master)并合并到本地李分支。 不过,我确实为李添了一个新的档案,所以当地的李与当地的主人不一样(但是这不应该是重要的,对吧?)

谢谢你,李

git fetch && git log Li..origin/Li查找diff。 我想你自从上次推动以来,你已经改过或者以其他方式改过了Li ,但是这个命令应该告诉你到底是什么东西在遥控器里,不在本地。 你可以用三点语法find(但不是两者都一样): git log Li...origin/Li

如果diff是预期的,那么只要合并git merge origin/Li然后git push 。 如果更改不需要,请用git push -f origin Li覆盖远程。 只有在你想放弃遥控器的改变时才这样做。

更新被拒绝,因为推送的分支在其远程之后。

 git config --global push.default current 

尝试使用上面的命令将当前分支设置为默认和

 git push 

运行以下行:

 git fetch git remote prune origin 

他们刷新所有的裁判。 然后看看一些GUI的git客户端(例如mac上的gitx)你的源码树是什么样的。 这应该有助于找出问题。

还要确保你的repo不是只读的,而且你有写权限。

您可以强制推送更改到远程地址,但它可以产生新的远程分支

 git push subtree_remote_address.git `git subtree split --prefix=subtree_folder`:refs/heads/branch --force 

git分支–set-upstream-to = origin / master

如果您在“主”分支时发生错误,请尝试以下命令:

git分支–set-upstream-to = origin / master

或者,一个捷径:git push -u origin master