312

パスワードのキャッシュに関する部分を含め、私はこれらの指示に従って手紙を書きました。毎回git push origin masterこのエラーが発生するため、手順が間違っているようです。

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

...その時点で、ユーザー名とパスワードの入力を強制されます。そうすると、同じエラーメッセージが再度表示され、その後にからの出力が表示されgit pushます。

.gitconfigファイルの内容は次のとおりです。

[user]
    name = myusername
    email = myusername@myemaildomain.com
[credential]
    helper = cache

明確にするために、GitをインストールしてGit Bashを実行した後、次のように入力しました。

git config --global user.name "myusername"
git config --global user.email "myusername@myemaildomain.com"
git config --global credential.helper cache

助けてください。これはとてもイライラします!

4

19 に答える 19

360

私が見つけたブログから:

この[git-credential-cache]は、git-credential-cacheがUnixソケットを介して通信するため、Windowsシステムでは機能しません。

Git for Windows

msysgitはGitforWindowsに取って代わられたため、GitforWindowsを使用するのが最も簡単なオプションになりました。Git for Windowsインストーラーの一部のバージョン(2.7.4など)には、インストール中にGitCredentialManagerを有効にするためのチェックボックスがあります。これがスクリーンショットです:

Git ForWindows2.7.4インストールウィザードのスクリーンショット

まだmsysgitを使用していますか?msysgitバージョン1.8.1以降の場合

wincredヘルパーはmsysgit1.8.1で追加されました。次のように使用します。

git config --global credential.helper wincred

1.8.1より古いバージョンのmsysgitの場合

まず、git-credential-winstoreをダウンロードして、gitbinディレクトリにインストールします。

次に、を含むディレクトリがgit.cmdPath環境変数にあることを確認します。このデフォルトのディレクトリは、64ビットシステムではC:\ Program Files(x86)\ Git \ cmd 、32ビットシステムではC:\ Program Files \ Git\cmdです。これをテストする簡単な方法は、コマンドプロンプトを起動して「。」と入力することgitです。gitコマンドのリストが表示されない場合は、正しく設定されていません。

最後に、コマンドプロンプトを起動して、次のように入力します。

git config --global credential.helper winstore

.gitconfigまたは、ファイルを手動で編集することもできます。

[credential]
    helper = winstore

これを実行すると、WindowsのコントロールパネルからプルアップできるWindowsCredentialManagerを介してgitクレデンシャルを管理できます。

于 2012-08-09T18:06:20.370 に答える
72

Windows(msysgit)にgitすぐに使用できるようになりました。wincred

git config --global credential.helper wincred

参照https ://github.com/msysgit/git/commit/e2770979fec968a25ac21e34f9082bc17a71a780

于 2014-03-08T11:12:36.240 に答える
35

ファーストランgit config --global credential.helper wincred

次に、次の場所に移動します。CONTROL PANEL\CREDENTIAL MANAGER\WINDOWS CREDENTIAL\GENERIC CREDENTIAL

Internet or network address: 次に、 add git:https://{username}でクレデンシャルを追加をクリックします.github.com

User:{名前}

Password:{パスワード}

于 2015-12-31T03:18:21.737 に答える
27

Windows7でAptanaStudio3を使用しているときに、この問題に直面しました。これは私を助けました:

git config --global credential.helper wincred

ここから取得したコード

于 2014-02-26T17:16:34.717 に答える
19

まず、GITに使用しているバージョンを見つけます。

このコマンドの使用:git --version

1.7.10より新しいバージョンを使用している場合。

次に、このコマンドを使用します。

ウィンドウズ:

git config --global credential.helper wincred

マック

git config --global credential.helper osxkeychain

参照

于 2015-11-17T17:48:30.833 に答える
16

同様のエラーは'credential-wincred' is not a git command

受け入れられ、人気のある回答は現在古くなっています...

wincredメンテナンスされなくなったプロジェクトgit-credential-winstore用です。

これは、 Microsoftオープンソースによって維持されているGit-Credential-Manager-for-Windowsに置き換えられました。

上記のリンクからzipファイルとしてリリースをダウンロードし、次のリンクからコンテンツを抽出します。

\cygwin\usr\libexec\git-core

(または\cygwin64\usr\libexec\git-coreそれがそうであるかもしれないので)

次に、それを有効にします(グローバルを設定することにより.gitconfig)-実行します:

git config --global credential.helper manager

使い方

それ以上の設定は必要ありません。

資格情報が必要な場合に[自動的に]機能します。

たとえば、Azure DevOpsにプッシュすると、ウィンドウが開き、oauth2フローが初期化されてトークンが取得されます。

参照:

于 2018-11-01T16:45:03.547 に答える
10

Windowsで小さなexeをダブルクリックすることで、Gitパスワードキャッシュを設定するはるかに簡単な方法があります。git-credential-winstoreプロジェクトはGitHubからhttp://gitcredentialstore.codeplex.com/に移動されましたが、プログラムは依然として上位投票の回答で言及されていることに基づいています。

このブログ投稿からexe(およびMacの場合はバイナリ)をダウンロードできます:https ://github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage

于 2013-05-24T21:47:18.707 に答える
10

credential特定のプロジェクトの構成からセクションを削除することで、この問題を修正しました。

  • 入力したばかり:git config -e
  • エディター内でセクション全体を削除しました[credential] helper = cache

これにより、迷惑なメッセージが削除されました。

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

于 2017-12-25T16:05:13.310 に答える
7

この問題を抱えている他の人のために、この機能が唯一のものgit: 'credential-cache' is not a git command.であることがわかるまで、Ubuntuで同じ問題が発生しました(つまり、オプションを正しく設定し、エラーが発生したにもかかわらず、パスワードがキャッシュされませんでした)。Git1.7.9以降で利用できます

Ubuntuの古いディストリビューション(Natty;私は頑固なGnome 2ユーザーです)を使用しているため、リポジトリのバージョンはgitバージョン1.7.4.1でした。次のPPAを使用してアップグレードしました: https ://launchpad.net/~git-core/+archive/ppa

于 2012-09-17T16:03:35.620 に答える
5

他の人がこの問題を抱えているために-新しいgithubリポジトリを設定する方法を理解しようとしたため、ここに着陸しましたが、設定ページごとに、リポジトリのクローンを作成しない限り、クレデンシャルヘルパーは機能しません。

「ヒント:資格情報ヘルパーは、HTTPSリポジトリURLのクローンを作成する場合にのみ機能します。代わりにSSHリポジトリURLを使用する場合は、認証にSSHキーが使用されます。このガイドでは、SSHキーペアの生成と使用について説明しています。」

于 2013-10-24T20:51:44.980 に答える
4

会話に少し遅れていることに気づきましたが、まったく同じ問題が発生しました。gitconfigで2つのエントリのクレデンシャルがありました…</ p>

私の.gitconfigファイルで

[credential]
helper = cached
[credentials]
helper = wincred

修正:.gitconfigファイルを以下の設定に変更しました

[credential]
helper = wincred
[credentials]
helper = wincred
于 2018-08-19T18:05:35.200 に答える
2

もう1つの効率的な回避策は次のとおりです。

1-コントロールパネルに移動し、次のようにgithub.comのクレデンシャルを追加します。

GitHubのWindowsクレデンシャル

2- CMDに移動し、次のコマンドを入力します。

  • a- cd%localappdata%\ Atlassian \ SourceTree \ git_local \ mingw32 \ bin \
  • b- git.exe config --edit --system
  • c-最後の行を次のように修正します:helper = manager
  • d- CTRL + Cをクリックして:wqと入力し、Enterキーを押して、新しい構成ファイルを保存します

構成の更新:ヘルパー=マネージャー

これは私にとって完璧に機能します!

于 2021-12-26T04:05:27.187 に答える
1

古いUbuntuLinuxシステムの場合:

git config --global credential.helper store
于 2021-10-22T00:41:23.000 に答える
1

私は文字通りこれを経験しました!

  1. Git Credential Manager Coreをダウンロードしてインストールします:https ://github.com/microsoft/Git-Credential-Manager-Core#download-and-install
  2. Account Settings > EmailsGitHubに移動します。次のようなものが表示されます。 ここに画像の説明を入力してください
  3. 強調表示された電子メールは、プライベート電子メールを非公開に保つためにシステムによって生成されます。それをコピーして、次のステップで使用します
  4. gitを構成します:
 git config --global user.name "yourusername"
 git config --global user.email "1234567+yourgithubusername@users.noreply.github.com"
 git config --global credential.helper cache

これで、gitコマンドが再び機能するはずです。

マイナーノート:私はLinuxMintを使用しています。YMMV

追記:DebianバックグラウンドのGit Credential Manager Corev2.0.567にバグがあります。新しいバージョンがリリースされる前に、v2.0.474をインストールしてください。

于 2021-11-14T04:25:38.163 に答える
1

helper=.gitconfigの[credential]セクションに3つの異なるエントリがあり、そのうちの1つは空です。他の2つを削除し、維持helper=wincredすることで問題は解決しました。

ところで:理由はわかりませんが、.gitconfigがすぐに見つかりませんでした。その後、C:\ Users\usernameで見つけました。

于 2022-01-12T15:53:09.833 に答える
0

ドメインが変更された後、つまり@xy.comから@xyz.comに変更された後、AzureDevOpsリポジトリでも同じ問題が発生しました。この問題を修正するために、次の権限を持つ新しい個人アクセストークンを生成しました。

コード:読み取りと書き込みパッケージング:読み取り

次に、Windowsクレデンシャルマネージャーを開き、次の詳細を含む新しい汎用Windowsクレデンシャルを追加しました。

インターネットまたはネットワークアドレス: "git:{ projectname } @ dev.azure.com / { projectname }"-または、ここでgitリポジトリ名を使用する必要があります。
ユーザー名:「パーソナルアクセストークン」
パスワード: {生成されたパーソナルアクセストークン}

その後、すべてのgit操作が再び機能しました。これが他の誰かに役立つことを願っています!

于 2020-01-10T08:29:05.040 に答える
0

Macの場合、次のコマンドを実行します。

git config --global credential.helper osxkeychain

于 2021-08-03T17:10:30.820 に答える
0

私の元の答えは私自身にとってもあまり役に立たないことがわかったので、もう少し調べてみると、ハックが見つかりました(多少複雑ですが)。

したがって、私はgitMSYS2で使用しcredential-cache、パスワードを一時的に覚えておくためにを使用したいと思います(そして、wincred他のWindows適用可能なアプローチでそのようなユースケースを見たことがありません)。

基本的に、これにはhttps://github.com/git/git/blob/55144cc/builtin/credential-cache--daemon.c#L239でのハックが必要です-その行で-ingする代わりに、die続行します。

したがって、まず、gitMSYS2でビルドします。

gitしたがって、 MSYS2で使用される実際のビルドを行う必要があります。まず、バージョンを確認します。

$ git --version
git version 2.33.0
$ pacman -Ss git | grep installed # msys/git 2.33.0-1 (VCS) [installed]

次に、https://www.msys2.org/wiki/Creating-Packages/に従って、これを行うことができます。

$ git clone "https://github.com/msys2/MSYS2-packages"
$ cd MSYS2-packages/
$ cd git
$ makepkg -sCLf
==> Making package: git 2.33.0-1 (Thu, Sep 23, 2021 12:47:33 PM)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Installing missing dependencies...
...
make[1]: Entering directory '/c/src/MSYS2-packages/git/src/git-2.33.0'
make[1]: 'GIT-VERSION-FILE' is up to date.
make[1]: Leaving directory '/c/src/MSYS2-packages/git/src/git-2.33.0'
sed -e '1s|#!.*/sh|#!/bin/sh|' git-subtree.sh >git-subtree
chmod +x git-subtree
make: Leaving directory '/c/src/MSYS2-packages/git/src/git-2.33.0/contrib/subtree'
==> Starting check()...

ここに注意してください:

  • このビルドプロセスは、最初はASCIIDOC / XMLTO部分になります。これは、私のマシンでは30分かかります。
  • その後、*** prove ***さらに時間がかかる部分になりますが、Ctrl-Cで中断することができ、ビルドされた実行可能ファイルは消去されません。

そこで、ソースをハックしたいと思います。ノート:

  • ソースをハックする場合は、を使用したくありませんmakepkg -sCLf。これにより、ソースディレクトリが(ビルドされたすべての.exeアーティファクトとともに)消去され、ビルド前に再構築されます。

したがって、を使用してハックを行いsed、次にビルドします。

$ sed -i 's/die(_(permissions_advice), dir);/fprintf(stderr, "Permissions on cached credentials socket directory %s are too loose, but HACK: going on\\n", dir);/' ./src/git-2.33.0/builtin/credential-cache--daemon.c
$ (cd src/git-2.33.0/; make)
    CC builtin/credential-cache--daemon.o
    LINK git.exe
...
    SUBDIR templates

この時点で、ハッキングは少なくとも3つの実行可能ファイルで終了することに注意してください。これは、次の方法で確認できます。

$ grep -ao ....HACK........ ./src/git-2.33.0/git-credential-cache--daemon.exe
$ grep -ao ....HACK........ ./src/git-2.33.0/git-credential-cache.exe
$ grep -ao ....HACK........ ./src/git-2.33.0/git.exe

...そして私はこれを機能させることができたのは、3つすべてを置き換えた後です:

# backup the original files:

$ mv /usr/lib/git-core/git-credential-cache--daemon.exe /usr/lib/git-core/__git-credential-cache--daemon_orig.exe
$ mv -v /usr/lib/git-core/git-credential-cache.exe /usr/lib/git-core/__git-credential-cache__orig.exe
$ mv -v /usr/bin/git.exe /usr/bin/__git_orig.exe
$ mv -v /usr/lib/git-core/git.exe /usr/lib/git-core/__git_orig.exe

# copy over the hacked files:

cp -v ./src/git-2.33.0/git-credential-cache--daemon.exe /usr/lib/git-core/
cp -v ./src/git-2.33.0/git-credential-cache.exe /usr/lib/git-core/
cp -v ./src/git-2.33.0/git.exe /usr/bin/
cp -v ./src/git-2.33.0/git.exe /usr/lib/git-core/

そしてこの時点で、credential-cacheMSYS2(限られた時間のパスワードのキャッシュ)でも作業を開始しました。起動時にハッキングされた行をダンプするだけです。

$ git pull
Password for 'https://user@git.mysite.com':
Permissions on cached credentials socket directory /home/user/.cache/git/credential are too loose, but HACK: going on
Already up to date.

# second pull, password is cached
$ git pull
Already up to date.

少し注意が必要ですが、機能しているようです。

PS:トリッキーなことは、私が最初にtodieだけに置き換えたのですが、それは失敗し続けました。結局のところ、プロセス間通信に使用されており、これが成功するためには、明らかに3バイトの何かが答えます。そのため、解決策は代わりに通知を印刷することでした。printfstdoutstdoutok\0stdoutstderr


(元の回答):

質問に正確に答えることはできませんが、これは私が見つけた最も適切な質問であり、これを答えとして文書化することができます。

私はgitWindows10のMSYS2で使用していますが、現在のバージョンは次のとおりです。

$ git --version
git version 2.32.0

私は通常、gitに限られた時間(おそらく10分程度)だけパスワードをキャッシュさせてから、それを忘れてしまいたいと思っています。wincredまた、そのユースケースでのWindows固有のクレデンシャルマネージャーの使用法やその他の使用例はまだ見ていません。

そうは言っても、私には「簡単な修正」があることがわかりました。基本的に、クレデンシャルマネージャーを初めて実行するときは問題ありません。私が得るのはその後の使用時のみです:

$ git push
Password for 'http://user@githost.example.com':
fatal: The permissions on your socket directory are too loose; other
users may be able to read your cached credentials. Consider running:

        chmod 0700 /home/user/.cache/git/credential
fatal: cache daemon did not start:
Enumerating objects: 8, done.
Counting objects: 100% (8/8), done.
...

したがって、基本的に、修正はcredentialディレクトリを削除することです-その後、資格情報キャッシュマネージャーは初めてのように実行され、限られた時間だけパスワードをキャッシュします-ちょうど私が望むように:

$ rm -rf ~/.cache/git/credential


# note below, the very first pull still asks for a password:

$ git pull
Password for 'http://user@githost.example.com':
Already up to date.

# ... but the second pull does not, it uses credentials cache

$ git pull
Already up to date.

私には十分だと思います:)

編集:実際にはそうではありませんが、この直後に別のタブをプルしようとすると、エラーが返されることを経験しました。

于 2021-08-13T07:09:51.380 に答える
0

Git for Windows(2.32、Q2 2021)で現在パッケージ化されているクレデンシャルヘルパーは次のとおりです。

 git config credential.helper
 manager-core

 where git-credential-manager-core
 C:\Program Files\Git\mingw64\libexec\git-core\git-credential-manager-core.exe

これはGCMコア(Git Credential Managerコア)の後です:microsoft/Git-Credential-Manager-Core/

Git Credential Manager Core(GCM Core)は、WindowsおよびmacOSで実行される.NET上に構築された安全なGitクレデンシャルヘルパーです。Linuxのサポートは初期のプレビューです。

HTTP対応のGitリポジトリで機能する単一要素認証サポートを提供するGitの組み込みの資格情報ヘルパー(Windows:wincred、macOS:osxkeychain、Linux:gnome-keyring)と比較して、GCMCoreはAzureDevOpsの多要素認証サポートを提供します、Azure DevOps Server(以前のTeam Foundation Server)、GitHub、およびBitbucket。

Git Credential Manager Core(GCM Core)は、.NETFrameworkベースのGitCredential Manager for Windows(GCM)、およびJavaベースのGit Credential Manager for MacおよびLinux(Java GCM)に代わるものであり、すべてのプラットフォームで一貫した認証エクスペリエンスを提供します。


Git 2.34(Q4 2021)では、UNIXソケットがGitforWindowsで検討されるようになりました。

Carlo Marcelo ArenasBelón()によるcommit bb390b1commit 245670ccommit 0fdcfa2(2021年9月14日)を参照してください。( Junio C Hamanoによってマージされました---コミットc2e7990、2021年9月23日carenas
gitster

git-compat-util:WindowsのUNIXソケットの宣言を含める

サインオフ:CarloMarceloArenasBelón

Windows10リリース1803およびWindowsServer2019以降で使用できます。

NO_UNIX_SOCKETSWindows 7までのリリースとの下位互換性を維持する必要があるため、Windowsビルドのデフォルトのままですが、それ以外の場合はヘッダーを含めることができます。

于 2021-08-13T07:35:38.220 に答える