41

我已经从 git 克隆了存储库 A 的 master 分支,并创建了我自己的名为 Li 的分支。我前段时间做了一些改动,将本地李的内容推送到远程李。

现在我已经将一些更新从远程 master 拉到我的本地 master 分支,从本地 master 分支到本地 Li,我正在尝试将更新从本地 Li 推送到远程 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 (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

请注意,我的本地 master 分支已更新(我调用了 git pull origin master)并合并到本地 Li 分支中。但是,我确实为本地 Li 添加了一个新文件,因此本地 Li 与本地 master 不同(但这应该没关系,对吧?)

谢谢,李

4

4 回答 4

36

更新被拒绝,因为推送的分支提示位于其遥控器后面。

git config --global push.default current

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

git push
于 2013-03-07T04:15:45.007 回答
29

用 查找差异git fetch && git log Li..origin/Li。我猜您Li自上次推送以来已经重新定位或以其他方式重新切割,但是该命令应该准确地告诉您远程中不在本地的内容。您可以使用三点语法找到其中任何一个(但不是两者)中的内容:git log Li...origin/Li.

如果差异是预期的,那么只需与git merge origin/Li然后合并git push。如果不需要更改,请使用 覆盖远程git push -f origin Li。仅当您想放弃遥控器的更改时才这样做。

于 2012-08-13T13:36:55.067 回答
0

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

git push subtree_remote_address.git `git subtree split --prefix=subtree_folder`:refs/heads/branch --force
于 2017-03-13T10:39:37.593 回答
0

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

如果您在“主”分支上遇到错误,请尝试以下命令:

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

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

于 2017-08-23T09:36:34.097 回答