我当前的分支是my_branch
。我试图将更改推送到远程仓库:
$ git push
Counting objects: 544, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (465/465), done.
Writing objects: 100% (533/533), 2.04 MiB | 1.16 MiB/s, done.
Total 533 (delta 407), reused 0 (delta 0)
To git@......git
4ed90a6..52673f3 my_branch -> my_branch
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@......git'
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 pull
Already up-to-date.
为什么我收到此错误?
如何解决此问题并成功执行git push
?
答案 0 :(得分:25)
我目前的分支是my_branch。
这是你的问题。当您拉动时,Git会告诉您,您的分支my_branch
是最新的,不是 master
,它位于origin/master
之后,无法快速合并。
为了推送主人,你需要检查master
并拉。这将合并到等待origin/master
的更改中,并允许您推送自己的更改。
git checkout master
git pull
# resolve conflicts, if any
git push
答案 1 :(得分:5)
[如果您的主分支已经配置为在pull上进行rebase,那么您只需要对其他answerd中描述的master分支进行拉取,否则:]
如果您收到非快进消息,这意味着您只能在现有提交之上推送提交,但您尝试不这样做。在推送之前对master进行rebase(假设遥控器被称为origin):
git checkout master
git pull --rebase origin master
git push
答案 2 :(得分:4)
将开发者权限更改为“维护者”
答案 3 :(得分:3)
它也可能是Git Hook! 那会给出同样的错误。
Git Hooks在本地运行,因此它们可以在推送之前拦截并“预处理”提交。
更多有关Git Hooks的信息:https://githooks.com/
您应该能够在您的仓库的根目录中找到钩子:.git/hooks
。
读取钩子文件可能有帮助,也可能没有帮助;它们充满了高级git命令和regexp。
使用文件浏览器/查找器进行查找,因为带有句点(.git,.gitignore)前缀的文件通常隐藏在IDE的文件中。
当尝试推入名为feature/JIRA-123_description-text
的分支时,我也遇到了同样的错误,经过一番环顾后,我发现所有其他项目分支都被命名为features/...
,所以我只是缺少了 s 。重命名分支即可解决问题。
因此,如果拉主服务器等无法解决问题,请尝试查看其他一些分支名称并匹配格式。或检查文档以查看是否有特殊的分支命名策略,或者您是否尝试过以错误的文件格式推送内容等。
答案 4 :(得分:1)
为我解决了什么
转到https://github.com/confluentinc/ksql/issues/4051
取消锁定:“阻止命令行公开我的电子邮件”
对我来说,问题是:许可证中有我的电子邮件