尝试推送到Bitbucket时无法推送错误

时间:2019-07-22 12:43:43

标签: git bitbucket git-tower

当我尝试推送到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。

2 个答案:

答案 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