【问题标题】:Error in git: You can only push your own commits in this repositorygit 中的错误:您只能在此存储库中推送自己的提交
【发布时间】:2019-03-23 23:47:34
【问题描述】:

昨天我在尝试将我的提交推送到 repo 时开始收到错误,如何解决?而且我不是这个 repo 的管理员。

remote: You can only push your own commits in this repository
remote: Commit commitName was committed by <myName> <my@users.noreply.github.com>
To ssh://bitbucket.awg.ru/repo
 ! [remote rejected] branchName -> branchName (pre-receive hook declined)
error: failed to push some refs to 'ssh://git@bitbucket.awg.ru/repo'

更新

谢谢大家,问题解决了。问题出在 Bitbucket 方面,管理员更改了一些选项。现在一切正常。

【问题讨论】:

  • 您要推送的任何提交是否由您以外的其他人创作?
  • 不,所有的提交都是我做的。

标签: git commit bitbucket-server


【解决方案1】:

谢谢大家,问题解决了。问题出在 Bitbucket 方面,管理员更改了一些选项。现在一切正常。

更新

根据提出问题的@Oleg。 问题通常是由于 Bitbucket 挂钩而发生的。此钩子将拒绝任何包含推送到服务器的用户未提交的提交的推送。

解决问题:

  • 您必须对 Bitbucket 服务器中的存储库具有管理员访问权限
  • 转到服务器中的存储库
  • 然后在边栏中⚙存储库设置
  • 选择挂钩
  • 禁用验证提交者挂钩
  • 你完成了

【讨论】:

  • 但这只是一个解决方案,如果你真的想禁用它。检查提交者是 Bitbucket 的一个很好的安全功能。在这种情况下,请正确设置您的全局设置。这是更好的方法。
【解决方案2】:

在将其推送到 bitbucket 之前,您需要设置您的身份

git config --global user.email "Your Email"
git config --global user.name "Your Name"
git push origin <branch-name>

【讨论】:

  • 身份已设置,直到昨天一切正常。
【解决方案3】:

假设您已经按照@Manish R 的回答完成了 git config,然后检查 Bitbucket 是否没有强制执行验证提交程序挂钩。见项目 -> 设置 -> 钩子

【讨论】:

  • 看来我没有足够的权限来做这件事。
  • 你需要是 repo 或项目管理员,或者是系统管理员
【解决方案4】:
  1. 转到您的回购浏览器并检查您的个人资料中的用户名和电子邮件(右上角)

  2. 在 git bash 中根据您的 git web 配置文件更新您的详细信息 git config --global user.email "your@email.com" git config --global user.name "用户名"

  3. 您需要撤消提交,然后在步骤 2 中更改用户详细信息后重做

  4. 推送更改 git推送

【讨论】:

    【解决方案5】:

    我在办公机器上处理不同项目时遇到了同样的问题。 Git 使用我的办公室电子邮件“asankasi@abc.com”进行全局配置。另一个是 GitLab 存储库的开源项目,由我的 gmail 帐户进行身份验证。

    GitLab 存储库的推送不起作用,显示与上述相同的错误。原因是,提交消息的作者来自我的办公室电子邮件。

    为每个存储库保留不同的提交者姓名和电子邮件,对我有用。我已经修改了 GitLab 存储库的 user.email。这只是省略了 --global 标志。

    现在您的所有提交都将来自您为存储库设置的新作者,以防止上述错误。

    【讨论】:

      【解决方案6】:

      您必须撤消具有错误电子邮件地址的提交,然后如下所述更新 git 配置。 如果您多次提交,您可能需要先挑选然后提交,但只有在执行完这些步骤之后:

      # remove "--global" if you only want to update it for the local repo
      git config --global user.email "Your Email"
      git config --global user.name "Your Name"
      

      进行新的提交,然后你应该能够推送。

      【讨论】:

        猜你喜欢
        • 2020-07-06
        • 2021-06-03
        • 2012-06-01
        • 2013-03-02
        • 1970-01-01
        • 2021-11-29
        • 1970-01-01
        • 1970-01-01
        • 2021-03-11
        相关资源
        最近更新 更多