【问题标题】:Git push credentials should be the information in GitLabGit 推送凭证应该是 GitLab 中的信息
【发布时间】:2018-02-23 13:44:29
【问题描述】:

当我运行git push origin master 时,我被要求提供凭据。例如:

用户名:stackover /通过:stack0v3r

并且推送成功。

当我访问我的 GitLab 帐户时。我实际上看到名称 AnotherUser 在使用这些命令推送之前做出了我设置的提交:

> git config --global user.name "AnotherUser" git config --global

> git config --global user.email "anotheruser@example.com"

问题是,这台电脑将被许多其他人使用,我不希望他们手动更改此设置。 是否有一种方法可以获取凭据并自动将它们用作 GitLab 的信息?

理想情况下,这就是它的工作方式:另一个推送,任何其他用户(并且控制台配置为另一个用户)。当任何其他用户输入用户/传递AnyOtherUser时,GitLab上的信息将显示这是由AnyOtherUser推送/提交的。

我希望我很清楚。 非常感谢。

【问题讨论】:

  • 我不太明白,你想让每个用户(unix用户)以不同的身份推送gitlab?
  • 请说明您使用的是HTTPS还是SSH身份验证
  • 你好@Arount。大部分是的。例如,何时轮到您使用这台 PC,您将推送到 GitLab,它会要求您提供凭据,并且推送会成功。但是当我去 GitLab 项目时,我会看到用户“AnotherUser”做出了提交,而不是你!我不希望每次您(Arount)使用这台 PC 手动应用这些配置用户命令。
  • 你好@ibt23sec5。 HTTPS。

标签: git gitlab


【解决方案1】:

如果您使用 git+ssh 身份验证,您必须首先将您的公共 SSH 密钥放入您的 Gitlab 帐户。你不知道怎么做,here 是一个小教程。

否则,如果您使用 HTTPS 身份验证,请从您在 Gitlab 中的个人设置中创建并获取 personal access token。您将使用您的用户名将此令牌放入 repo url:

git remote set-url origin https://username:your_new_acces_token@gitlab-url/namespace/project.git

【讨论】:

  • 我知道 SSH 密钥和 HTTPS,但这仍然不能解决我的问题。你还是让用户输入一个命令。现在在 git config 全局用户名上设置的默认用户是 TEST。当我推送时,在 GitLab 上我仍然会看到 TEST 用户做出了提交,而不是我在远程 set-url 命令中提供的用户名
【解决方案2】:

所以你想处理几个 Gitlab 身份。

基本设置是通过身份创建一个 UNIX 用户:

  • /home/firstuser/.gitconfig:

    [user]
        email = firstuser@foo.bar
        name = 'First User'
    
  • /home/seconduser/.gitconfig:

    [user]
        email = seconduser@foo.bar
        name = 'Second User'
    

等等……

因此,每个用户都将使用自己的~/.gitconfig,而您的Gitlab 将在此功能中显示First UserSecond User

【讨论】:

  • 嗯,这仍然是手动完成的。让我们尝试另一种方式,GitLab 显示哪个用户提交了(AnotherUser),但你能真正看到他使用了什么 HTTPS 凭据吗?(我只需要他用来推送的用户名)。 GitLab 用户名可以不同于 https 登录用户名。在 GitLab 上你可以看到另一个用户,但他使用另一个用户 123 进行登录
猜你喜欢
  • 2021-01-19
  • 2017-11-17
  • 2013-06-12
  • 1970-01-01
  • 2021-12-16
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多