【问题标题】:Git Push - Username and password in the remote urlGit Push - 远程 url 中的用户名和密码
【发布时间】:2014-12-20 02:49:10
【问题描述】:

据我了解,可以通过在remote push url 中添加用户名:密码来避免推送到 github 时出现密码提示。

https://you:password@github.com/you/example.git

这是 github 特定的安排,还是可以将此格式 (https://username:password@somedomain.org/repo.git) 用于任何 git 远程?

【问题讨论】:

  • user:password@host 模式不是特定于 git 的;它是Basic HTTP Authentication。我认为它不适用于ssh:// git 遥控器。
  • 谢谢@w0lf!有没有办法自动推送到远程仓库?
  • git push 是可以在命令行或脚本中输入的命令。所以,是的,你可以用任何你喜欢的方式自动化它。
  • 我的意思是有没有一种方法可以自动推送而不提示输入用户名和密码?假设用户名和密码在代码中可用?
  • 我不知道你能不能做到。如果可能,您可能想尝试使用 SSH 密钥。

标签: git github push


【解决方案1】:

这是 github 特有的安排吗?

这不是 Github 特定的;这实际上是Basic HTTP Authenticationuser:password@host 技巧是 way of specifying the BA credentials in the URL

...这种格式(https://username:password@somedomain.org/repo.git)可以与任何 git 遥控器一起使用吗?

它仅适用于使用 HTTP 协议的遥控器。对于 SSH 远程,您必须改用 SSH 密钥。

【讨论】:

    【解决方案2】:

    您可以让本地 Git 记住 GitHub 凭据:

    如果您使用 HTTPS 克隆 GitHub 存储库,您可以使用凭证助手告诉 Git 在每次与 GitHub 通信时记住您的 GitHub 用户名和密码。

    结账this article on GitHub.

    【讨论】:

      【解决方案3】:

      如果您使用 HTTPS,则通过 GitHub 对您进行身份验证比将密码放入远程 URL 更安全的方法是,在 this GitHub 页面中生成一个新令牌,然后像这样构建您的远程 URL:

      https://<username>:<token>@github.com/<username>/<project_name>.git
      

      【讨论】:

        【解决方案4】:

        Git push 不应显示密码 since Git 2.9.3 (August 2016),但为了安全起见,Git 2.22(2019 年第二季度)进一步改进了这一点:

        以前,remote-http 传输不会匿名化其错误中报告的 URL 地方的消息。

        参见Johannes Schindelin (dscho)commit c1284b2(2019 年 3 月 4 日)。
        (由 Junio C Hamano -- gitster -- 合并于 commit 764bd20,2019 年 4 月 16 日)

        curl:匿名化错误消息和警告中的 URL

        它在面向用户的错误消息和警告中匿名化 URL(阅读:去除用户名,尤其是密码)。


        在 Git 2.27(2020 年第二季度)之前,来自“git push”的错误和详细跟踪消息不会编辑嵌入在 URL 中的凭据材料。

        参见 Johannes Schindelin (dscho)commit d192fa5(2020 年 4 月 24 日)。
        (由 Junio C Hamano -- gitster -- 合并到 commit 2c42fb7,2020 年 5 月 1 日)

        push:匿名化错误消息和警告中的 URL

        签字人:Johannes Schindelin
        审核人:Taylor Blau

        就像47abd85ba0(“fetch:在存储之前从 url 中删除用户名”,2009-04-17,Git v1.6.4-rc0 -- merge)和更高版本的882d49ca5c(“@987654347 @: 在状态输出中匿名 URL", 2016-07-13, Git v2.10.0-rc0 -- mergebatch #7 中列出),甚至更晚的c1284b21f243 ("curl: 在错误消息中匿名 URL和警告”,2019-03-04,Git v2.22.0-rc0 -- mergebatch #5 中列出)此更改在面向用户的错误消息和警告。

        【讨论】:

          猜你喜欢
          • 2014-04-02
          • 2015-06-28
          • 2013-12-23
          • 2018-02-19
          • 2015-04-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多