WindowsのGit Credential Managerを無効にするにはどうすればよいですか?


170

最新バージョンのGitでは、デフォルトで毎回Bashプロンプトでパスワードの入力を求められるのではなく、「Git Credential Manager for Windows」ダイアログがポップアップ表示されることに気づきました。

私はこの行動が本当に嫌いです。どうすれば無効にして、毎回Bashシェルでパスワードの入力に戻ることができますか?

ちなみに、Windowsの資格情報でも、内部のデーモンでも、Gitが資格情報キャッシュしたくありません。すべての資格情報のキャッシュを無効にしたい。

回答:


211

OK、Git for Windowsインストーラーの「Git Credential Manager」チェックボックスをオンにするのを避けるか、(インストール後に)管理者としてBashシェルを実行し、を使用git config --edit --systemしてhelper = manager行を削除して、資格情報ヘルパー。

ボーナスポイントについては、以下を使用git config --edit --globalして挿入します。

[core]
    askpass =

OpenSSH資格情報ポップアップも無効にします。


19
答えてくれてありがとう。私にとって、エディターを使用するのは初めてでした。変更を保存する場合は、エスケープキーを押して:wqと入力し、Enterキーを押します(書き込み/保存して終了)。
Ben Besuijen 16

1
どうもありがとう!資格情報マネージャーが私の仕事のプロキシサーバーと混同され、Sourcetreeでの作業が悪夢になりました。それを無効にすると、問題はすぐに修正されました。
ジョニー

1
そして:wqが私の場合のように機能しない場合は、ctrl + zを使用して中止して終了しますが、おそらくこれらは後で動作する複数のバックアップファイルを作成します
Adeem

37
または、ノックアウトgit config --system --unset credential.helper
Ben Butzer '19年

4
SourceTreeを使用している場合は、埋め込まれたGITではなく、「システム」バージョンのGITが使用されていることを確認してください。Tools -> Options -> Git
Stevanicus

30

アンインストールオプションを使用して、Git Credential Manager for Windowsをアンインストールできました。

git-credential-manager.exe uninstall

このコマンドを C:\Program Files\Git\mingw64\libexec\git-core


1
これだけの屋台やIプレスCtrl-Cをした後、この使用法を吐く:git credential [fill|approve|reject]
ScottN

2
@ScottN実行中ですが、実行git-credential.exeする必要がありますgit-credential-manager.exe
エイダンライアン

13

VSTSで使用する必要があった別のオプション:

git config credential.modalprompt false --global


3
ありがとう!sshを使用して本番サーバーにリモートで接続するときに非常に便利であることがわかりましgit pullた。このオプションで私は両方の世界を楽しんでいます:WCMはサーバー(またはリモートデスクトップ)と物理的に接続されており、sshクライアントからプルすることができます。
cbuchart 2018

9

それは私にはうまくいきませんでした:

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

Looking for Git installation(s)...
  C:\Program Files\Git

Updated your /etc/gitconfig [git config --system]
Updated your ~/.gitconfig [git config --global]

Removing from 'C:\Program Files\Git'.
  removal failed. U_U

Press any key to continue...

しかし、 --forceフラグがあればうまくいきました:

C:\Program Files\Git\mingw64\libexec\git-core
git credential-manager uninstall --force
08:21:42.537616 exec_cmd.c:236          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
e
08:21:42.538616 git.c:576               trace: exec: git-credential-manager uninstall --force
08:21:42.538616 run-command.c:640       trace: run_command: git-credential-manager uninstall --force

Looking for Git installation(s)...
  C:\Program Files\Git

Updated your /etc/gitconfig [git config --system]
Updated your ~/.gitconfig [git config --global]


Success! Git Credential Manager for Windows was removed! ^_^

Press any key to continue...

実行した後、そのトレースを確認できました。

set git_trace=1

また、Gitのユーザー名を追加しました。

git config --global credential.username myGitUsername

次に:

C:\Program Files\Git\mingw64\libexec\git-core
git config --global credential.helper manager

最後に私はこのコマンドを入れました:

git config --global credential.modalPrompt false

SSHエージェントが実行されているかどうかを確認します-Bashウィンドウを開いてこのコマンドを実行します

eval "$(ssh-agent -s)"

次に、.sshがあるコンピューターのusers / yourNameフォルダーに、接続を追加します(まだBashにあります)。

ssh-add .ssh/id_rsa

or

ssh-add ~/.ssh/id_rsa(if you are not in that folder)

上記で追加したすべての設定を確認しました。

C:\Program Files\Git\mingw64\libexec\git-core
git config --list
09:41:28.915183 exec_cmd.c:236          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-cor
e
09:41:28.917182 git.c:344               trace: built-in: git config --list
09:41:28.918181 run-command.c:640       trace: run_command: unset GIT_PAGER_IN_USE; LESS=FRX LV=-c less
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
credential.modalprompt=false
credential.username=myGitUsername

そして、git pushもう一度行ったとき、ユーザー名とパスワードを初めて追加する必要がありました。

git push
Please enter your GitHub credentials for https://myGithubUsername@github.com/
username: myGithubUsername
password: *************
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 316 bytes | 316.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.

それ以来、を使用してgit push、Git資格情報を入力するメッセージはもうありません。

D:\projects\react-redux\myProject (master -> origin) (budget@1.0.0)
λ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 314 bytes | 314.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/myGitUsername/myProject.git
   8d38b18..f442d74  master -> master

これらの設定の後、次のメッセージを含むメールも受信しました。

 A personal access token (git: https://myGitHubUsername@github.com/
on LAP0110 at 25-Jun-2018 09:22) with gist and repo scopes was recently added
to your account. Visit https://github.com/settings/tokens for more information.

6

私はその問題を抱えていて、git-credential-manager.exeファイルのみを削除しました:

C:\Program Files\Git\mingw64\libexec\git-core

6

資格情報マネージャーを通常の使用に使用したかったのですが、からのプロンプトをまったく必要としないスクリプトがありgit.exeます。これがスクリプトからGitを呼び出す方法です。

set GIT_TERMINAL_PROMPT=0
git -c core.askpass= -c credential.helper= <command> ...

このようにして、スクリプトは、構成を調整する必要なく、常に「正しい」プロンプトなし設定を確認します。

(Git for Windows 2.13.3)


便利になるかもしれない私が見つけたバリエーションは、設定することです:

set GCM_INTERACTIVE=never
# Or: git config --global credential.interactive never

set GIT_TERMINAL_PROMPT=0
git.exe -c core.askpass= -c credential.helper=manager <command> ...

しかし、それgit.exe -c credential.interactive=never <command> ... は機能しないことに注意してください(それは-c WindowsなどのGit Credential Managerにルーティングされていないようです)。

そうすれば、GCMfW 使用できますが、プロンプトが表示されることはありません。資格情報を検索するだけなので、非インタラクティブな環境で非常に役立ちます。


5

使用する:

C:\Program Files\Git\mingw64\libexec\git-core                                                                       
git credential-manager uninstall --force    

これはWindowsシステムで動作します。私はそれをテストしました、そしてそれは私のために働きました。


3

多分問題はSourcetreeです。

  1. [ ツール] →[ オプション]に移動します

  2. [デフォルトのリモートで[10]分ごとにアップデートをチェックする]をオフにします

  3. Sourcetreeを再起動してください!


1

そして:wqが私のケースのように機能しない場合は、中止して終了するためにctrl + zを使用しますが、これらはおそらく後で動作する複数のバックアップファイルを作成します– Adeem Jan 19 at 9:14

また、必ずGitを管理者として実行してください。そうしないと、ファイルは保存されません(私の場合)。


1

Ubuntu 18.10(Cosmic Cuttlefish)でも同じ問題が発生しましたが、通常の方法では削除できません。私はを使用git config --global --unset credential.helperしましたが、それでうまくいったようです。


1

「user」フォルダc:// userの下で、「。gitconfig」ファイルを確認し、httpおよびプロキシ行を削除します。


1

ダイアログでを使用しないようにするにはgit config --global credential.modalPrompt false、クエリをコンソールに送ります。


0

Credential Managerを削除するだけです。

C:\Users\<USER>\AppData\Local\Programs\Git\mingw64\libexec\git-core
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.