Git没有要求凭据

时间:2014-09-03 09:35:51

标签: git ssl credentials

我正在尝试使用以下命令获取git存储库

git fetch -o origin (https://git.mydomain.com/path/to/repo.git)

但结果是

fatal: No such file or directory

如果我将凭据添加到网址中:

git fetch -o origin (https://username:password@git.mydomain.com/path/to/repo.git)

它就像一个魅力

如何在没有凭据的情况下获取网址?

编辑:由于命令是npm安装的一部分,这里有一些示例命令,你可以用它来复制问题..

git clone -o origin https://git.mydomain.com/path/to/repo.git

1 个答案:

答案 0 :(得分:0)

应使用git credential storage进行管理,例如GCM(Git凭据管理器)for WindowsMac/Linux

如果您对多个URL具有相同的凭据,则使用Git 2.26(2020年第1季度),用于凭据子系统的配置元素现在可以使用通配符模式来指定该条目的URL组适用。

请参见commit 46fd7b3commit 82eb249commit 588c70ecommit 732f934commit 3fa0e04brian m. carlson (``)(2020年2月20日)。
(由Junio C Hamano -- gitster --commit 2cbb058中合并,2020年3月5日)

credential:匹配配置时允许使用通配符模式

签名人:brian m。卡尔森

在某些情况下,用户可能希望对通配符模式使用特定的凭据帮助程序,例如 https://*.corp.example.com

我们已经使用urlmatch代码处理了此代码,因此让我们使用它代替我们的自定义代码。

由于urlmatch代码在功能上是我们当前匹配的超集,因此不应存在以前匹配但现在不匹配的情况。

但是,除了通配符匹配之外,我们现在还使用部分路径匹配,如果将帮助程序应用于远程URL的前缀(考虑路径组成部分),这可能会导致行为略有不同。

尽管有所不同,但这可能是人们想要的行为。

由于我们使用的是urlmatch代码,因此我们需要对进入URL的组件进行编码以进行匹配,因此需要对数据进行百分比编码并使用URL对其进行格式化。

我们现在也不再需要自定义代码来匹配URL,因此我们将其删除。

此外,URLmatch代码始终会寻找最佳匹配,而我们希望凭据帮助者的所有匹配都可以保留现有行为。

让我们添加一个可选字段select_fn,该字段使我们可以控制所需的项(在本例中为所有项),并将其默认为其他用户已经存在的最佳匹配代码。


在Git 2.27(2020年第二季度)中,用于credential.<URL>.<variable>配置的解析器已更新,可以正确处理其中包含'<URL>'的/

请参见commit b44d011brian m. carlson (bk2204)(2020年4月27日)。
(由Junio C Hamano -- gitster --commit fd65fc3中合并,2020年5月5日)

credential:修复路径中具有多个级别的匹配URL

举报人:Ilya Tretyakov
签名人:Carlo Marcelo ArenasBelón
签字人:布莱恩·米。卡尔森

46fd7b3900(“ credential:匹配配置时允许使用通配符模式”,2020-02-20,Git v2.26.0-rc0-mergebatch #0中列出)引入了对使用urlmatch匹配凭据助手的支持。

这样做,它引入了代码以百分比方式编码从凭据帮助器获得的路径,以便可以使用urlmatch代码对它们进行有效的匹配。

不幸的是,该代码有一个 bug 它对路径中的斜杠进行了百分比编码,从而导致包含多个级别(即目录组件)的URL路径都不匹配。

我们目前是百分比编码代码的唯一调用者,可以简单地对其进行更改以不对斜杠进行编码。

但是,我们仍然希望在用户名组件中对斜杠进行编码,因此我们需要同时提供两种行为。

因此,让我们添加一个标志来控制编码斜杠,这是我们想要的行为,在这种情况下,在调用代码时使用它。

使用路径中的多个斜杠(以前没有我们的测试套件)添加一个针对凭据帮助器URL的测试,并确保我们正常处理带有斜杠的用户名。

由于我们正在测试其他百分比编码处理方式,因此我们还要为非ASCII UTF-8字符添加一个。