[英]git non-fast-forward rejected with upstream
我有一个git repo,其中有一个上游设置的master,还有一个dev分支,该分支从该master获取每个流。
我在我的dev分支上做了一些提交的更改,这些更改仅对特定分支有用,对master没有帮助,我
我当前的分支是:
git status
On branch dev
Your branch is ahead of 'master' by 2 commits.
当我这样做时,我的提交是可见的
git diff origin/master..HEAD
我的分支是最新的(并且像以前一样通过master):
git pull
From .
* branch master -> FETCH_HEAD
Already up-to-date.
但是,当我推动时,我就感到沮丧:
git push origin
To https://my_git.git
! [rejected] dev -> dev (non-fast-forward)
error: failed to push some refs to 'https://my_git.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
任何提示都将不胜感激,我看了几篇类似的文章: git push拒绝了非快进或Git拒绝了非快进 ,但是在我看来,这些都不起作用。
谢谢
您的问题在这里:
git push origin
您未指定要推送的任何分支。
假设您正在使用git <2.0,则必须设置要pull/push
的分支。 在您的情况下,它尝试推送所有分支,其中一个分支会生成错误。
这会为你
# get all latest changes from the remote
git fetch --all
# merge the changes to the local repository
git pull origin dev
# push the changes to the remote
git push origin dev
Git v2.0发行说明
向后兼容性说明
当“ git push [$ there]”没有说明要推送什么时,到目前为止,我们已经使用了传统的“匹配”语义(只要您的分支已经发送到远程,只要那里已经有同名的分支)即可。 。
在Git 2.0中,默认值现在是“简单”语义,它推送:
仅当当前分支设置为与该远程分支集成时,才可以将当前分支转移到具有相同名称的分支; 要么
如果要推送到通常不是从那里获取的远程站点,则仅将当前分支转移到同名分支。
您可以使用配置变量“ push.default”进行更改。 例如,如果您想继续使用“匹配”语义,可以将变量设置为“匹配”。 阅读文档以了解其他可能性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.