GitLab public project 使用 https clone 后,早先 git push 会提示输入用户名(邮箱)和密码,而现在直接报告 HTTP code 401 Unauthorized 错误。这是由于现在 public project 允许未登录用户的 https 访问了,权限控制有一些改动。由于这个 bug 影响不大,为了与上游保持一致,暂不修复。

如果用 https clone 了 public project,现在做了一些改动需要 git push,请

  1. 将 ssh 公钥添加到 GitLab(如果没有添加过)
  2. 到项目页面找到 SSH URL(形如 [email protected]:xxx/xxx.git)
  3. 参考下面的方法更新 origin 为 SSH URL,然后就能通过 ssh push 了。(多谢 stephenjy 的评论,不需要先 rm 再 add,set-url 就行了)
git remote set-url origin [email protected]:xxx/xxx.git

当然,这一切的前提是你有这个项目的 push 权限。如果没有权限,请与项目管理员联系。