35

使用 GitHub for Mac 应用程序(版本 87)时,我收到以下错误:

git: 'credential-osxkeychain' 不是 git 命令。请参阅“git --help”。

错误:请求的 URL 返回错误:访问 https://github.com/[PROJECT URL]/info/refs 时出现 403

致命:HTTP 请求失败 (256)

git 命令行工具(版本 1.8.0)安装在/usr/local/git/bingit-credential-osxkeychain 正确安装在/usr/local/git/bin.

我该如何解决这个错误?

4

13 回答 13

32

在此处输入图像描述

当我尝试运行此命令时,没有错误

brew untap homebrew/homebrew-dupes
于 2019-04-12T06:03:29.823 回答
16

git: 'credential-osxkeychain' is not a git command. See 'git --help'.升级 git 后,此错误消息消失了

brew upgrade git

==> Upgrading 1 outdated package:
git 2.11.1 -> 2.21.0
于 2019-03-08T09:16:59.933 回答
13

此问题的根源在于 Mac 版 GitHub 对其可执行文件使用的目录路径与命令行工具不同。

Mac 版 GitHub: /Applications/GitHub.app/Contents/Resources/git/bin

命令行工具: /usr/local/git/bin/

因此,当 GitHub for Mac 尝试同步分支时,它会显示错误,因为它找不到 git-credential-osxkeychain 可执行文件。

解决问题:

  1. 启动终端
  2. 为 git-credential-osxkeychain 从Command Line Tools DirGitHub for Mac Dir创建一个符号链接

ln -s <git-command-line-tools dir path>/git-credential-osxkeychain <github for mac path>/git-credential-osxkeychain

这是我在系统上使用的命令:

ln -s /usr/local/git/bin/git-credential-osxkeychain /Applications/GitHub.app/Contents/Resources/git/bin/git-credential-osxkeychain

于 2012-12-02T01:51:26.357 回答
6

这总是发生在源树应用程序和您更改设置以使用系统 git 而不是带有源树的嵌入式 git 的解决方案中,因为源树使用的是旧版本,或者您可以使用 git 可执行文件的路径更新设置,而您应该在 /usr/bin/git 中找到它,或者您可以打印哪个 git 并指向您的源树应用程序来使用它

于 2013-11-04T21:18:22.073 回答
5

http://backlogtool.com/git-guide/cn/reference/trouble-shooting.html

如果你是windows,每次执行push/pull时HTTPS都需要密码,只是第一次

但在 Mac 中,您可以使用与钥匙串连接的身份验证助手。使用 Homebrew 的用户在安装 Git 时会自动安装身份验证助手。此外,您需要手动安装。

如果要验证是否有安装认证助手,可以使用以下命令进行确认。

git credential-osxkeychain

如果没有安装鉴权助手,会显示如下内容。

git: 'credential-osxkeychain' is not a git command. See 'git --help'.

此时,您可以将认证助手下载到正确的路径。

  1. curl -s -O http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain
  2. chmod u+x git-credential-osxkeychain
  3. mv git-credential-osxkeychain /usr/local/bin

安装后,设置开启认证助手。

  1. git config --global credential.helper osxkeychain
于 2017-06-27T15:35:02.577 回答
5

如果您在使用时遇到此问题brew update,请尝试

brew update --debug --verbose

您可以查看详细日志,并找到真正的原因。

于 2019-07-05T15:03:11.020 回答
1

我必须这样做,sudo ln -s /usr/local/git/bin/git-credential-osxkeychain /usr/bin/git-credential-osxkeychain因为我升级了 git,然后将 /usr/local/git/bin/git 复制到 /usr/bin/git

于 2015-02-26T19:27:50.617 回答
1

我为此苦苦挣扎了一段时间,但发现解决了我的问题。

第 1 步检查你有 git credential-osxkeychain

$ git credential-osxkeychain
# Test for the cred helper
> Usage: git credential-osxkeychain <get|store|erase>

如果不安装 Xcode 命令行工具 ( xcode-select --install),或者brew install git

第 2 步告诉 Git 使用osxkeychain helper配置global credential.helper

$ git config --global credential.helper osxkeychain
#Set git to use the osxkeychain credential helper
于 2021-02-06T09:10:17.793 回答
0

环境

/usr/local/git/bin/git-credential-osxkeychain

在您的路径中也有效,或者您的路径可能在任何地方。

我不确定哪种解决方案更可取。

于 2013-11-25T21:20:31.803 回答
0

在与我的一位同事一起解决这个问题后,我们只需将 SourceTree 更新到最新版本即可解决。

对于未来的查看者,在进入符号链接路径之前,请确保您为源树启用了自动更新(首选项->更新选项卡),然后检查更新(在 Mac 上的源树菜单中)

于 2013-12-17T22:41:46.910 回答
0

我对 Fork.app 有同样的问题,应用程序的 git 实例无法使用钥匙串,这有帮助(或更改为系统或自制 git 实例,它列在应用程序的首选项中):

cd /Volumes/Macintosh HD/Applications/Fork.app/Contents/Resources/git-instance/bin

./git config --global credential.helper osxkeychain
于 2020-12-30T12:56:12.963 回答
0

就像@plough 的回答brew update一样,由于使用了使用 HTTPS 访问远程存储库的私人水龙头,我在运行时遇到了同样的问题。

根本原因是 git 找不到配置的凭证助手,因为默认情况下会从环境中brew清除。PATH

有两种解决方法。

  1. HOMEBREW_NO_ENV_FILTERING=1 brew update不理PATH会,因此将使用您当前的 git 安装并找到凭证助手。每次键入都有些笨拙,因此如果您使用此解决方案,请将其保存为别名或 1-liner 脚本。

    更新:您也可以HOMEBREW_FORCE_BREWED_GIT=1 brew update使用 brew 安装的 git 而不是系统之一。此版本无需依赖设置的路径即可找到凭证助手。

  2. 我首选的解决方法是将有问题的水龙头的远程 URL 更改为使用 SSH 样式的 URL(并确保您配置了有效的 SSH 密钥)。你不必记住不同的咒语brew update,它是永久性的。

    • 在一个终端中,cd /usr/local/Homebrew/Library/Taps/ORG/homebrew-PRIVATE_TAP_NAME
    • git config remote.origin.url将显示一个值https://github.com/ORG/homebrew-PRIVATE_TAP_NAME
    • 将其更改为等效的 SSH 样式 URL:git config remote.origin.url git@github.com:ORG/homebrew-PRIVATE_TAP_NAME.git
于 2021-01-04T04:55:24.573 回答
-2

尝试 :git config --global credential.helper git

于 2018-06-27T07:38:11.097 回答