【问题标题】:I can't push to master branch from one computer, I can from another我无法从一台计算机推送到 master 分支,我可以从另一台计算机推送
【发布时间】:2026-02-05 05:40:01
【问题描述】:

我将一些代码推送到 Gitlab 中一个新项目的受保护主分支。

然后我将项目拉到另一台计算机上。

两台电脑(我的台式电脑和笔记本电脑)都设置了相同的 git 凭据。
它们具有相同的 ssh 密钥。

在第二台计算机上,我无法推送到受保护的主分支。
在哪里查看两台计算机上的凭据差异?
我在两台计算机上都使用 Ubuntu,并在 shell 中使用 git。

这是我收到的错误消息:

Total 0 (delta 0), reused 0 (delta 0)
remote: GitLab: You are not allowed to push code to protected branches on this project.
To git@vcs.xxxxxx.nl:xxxxx/xxxxxx.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@vcs.xxxxxxxxxxxxxx.git'

编辑:我现在无法从两台计算机推送。我将与回购的所有者核实。

【问题讨论】:

  • 您首先发布收到的错误消息
  • 您需要与服务器管理员讨论为什么该挂钩无法识别您的身份
  • 我会的。他今天请了病假。但是,我的问题是,如何从一台计算机而不是从另一台具有相同凭据的计算机推送到 repo?换句话说,这些凭据有何不同,我似乎无法找到?
  • 在不知道 pre-receive 钩子的内容的情况下,我们将不得不推测。它可能正在查看提交本身中的某些内容(例如作者姓名),而与您的凭据无关。

标签: git gitlab


【解决方案1】:

检查您的~/.gitconfig 是否相同(您可能已定义证书或其他内容)

第二件事是重启 ssh-agent

eval $(ssh-agent)

现在尝试拉取/获取,看看是否可以。

【讨论】:

  • 我已经检查了 ~/.gitconfig。我输入了您建议的命令,现在 git 需要密码。它不接受我输入的密码。我在 gitlab web gui 上重置了密码,但 git 仍然不接受它。
  • 所以使用 sudo 运行它
  • 在我的笔记本电脑上,我可以向/从主人推拉和开发。在我的桌面上,我可以推/拉开发,从大师那里拉,而不是推到大师。我找不到两台计算机上明显不同的东西。
  • 也许您的服务器对 IP 或计算机名称进行了保护配置?
最近更新 更多