当我尝试推送到Bitbucket时,我不断收到以下错误。我曾经工作得很好,然后就停止了工作。
有人可以帮我理解这是什么意思以及如何解决吗?
Pushing to https://x-token-auth@bitbucket.org/UserName/project-name.git
To https://bitbucket.org/UserName/project-name.git
= [up to date] Redesign -> Redesign
= [up to date] Version4.0 -> Version4.0
= [up to date] version2.0 -> version2.0
= [up to date] version3.0 -> version3.0
= [up to date] version3.2 -> version3.2
= [up to date] version4.1 -> version4.1
= [up to date] version5.0.3+cocoapods-firebase -> version5.0.3+cocoapods-firebase
= [up to date] version5.1 -> version5.1
= [up to date] version5.2 -> version5.2
= [up to date] version5.3 -> version5.3
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://x-token-auth@bitbucket.org/UserName/project-name.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 pull
。另外,我将git-tower用作git GUI。
答案 0 :(得分:1)
原因:由于remote
拥有比local
更高的master版本,因此发生错误。在这种情况下,git禁止推送到分支,因为-将要合并的内容以及如何以及由谁解决冲突?总是有人必须负责,存储库不能独自完成这项工作。
Git强制您首先pull
-pull
等同于fetch
+ merge
-因此,您将最新版本的代码收集到local
中这样做可以继承合并代码的责任,并解决编写代码时创建的合并冲突。否则,可以将它们卸载到remote
并在没有所有者的情况下留下混乱。
做什么: git pull
。您将收到一条消息,要求您进行合并。如果发生合并冲突,系统会要求您使用您选择的任何工具(我想是git tower)解决它。
此后,将可能再次进行快进推送,直到有人再次推送以进行精通,并且分支再次拥有比您的local
更高版本的通用代码库。
解决方法: ...(部分)...在Bitbucket和Github上,您可以部署限制以推送到某些分支。这称为“保护分支”。这样,您可以禁止所有人推送到受保护的分支机构,并以白名单为基础。您可以定义推送限制,例如在该分支上没有任何合并提交,在合并之前没有强制拉取请求,等等。这将阻止人们随意推送到生产分支,并排除问题的主要来源。
答案 1 :(得分:0)
您可以尝试 git push -u origin master--force