私はいくつかのリポジトリで作業していますが、最近私は社内のリポジトリで作業していて、すべてが素晴らしかったです。
今日、私はコミットして他のコードにコードをプッシュしなければなりませんでしたが、いくつかの問題を抱えています。
$ git Push appharbor master
error: The requested URL returned error: 403 while accessing https://[email protected]/mitivo.git/info/refs?service=git-receive-pack
fatal: HTTP request failed
私ができることは何もない、それは再びパスワード入力をもたらすだろう。
Gitが私にそのリポジトリのパスワードを要求するように私のシステムの資格情報をリセットするにはどうすればいいですか?
私が試してみました:
git config --global --unset core.askpass
パスワードを解除するために
git config credential.helper 'cache --timeout=1'
信任状のキャッシュを避けるために...
うまくいかないようです。誰かがより良い考えを持っていますか?
Git信任状キャッシュは、ユーザーの信任状をメモリーにキャッシュし、それらを要求に応じて配布するデーモン・プロセスを実行します。そのため、git-credential-cache - デーモンプロセスを強制終了すると、これらすべてが破棄され、これをcache.helperオプションとして使用し続けると、パスワードの再入力が求められます。
git config --global --unset credential.helper
を使ってGit信任状キャッシュの使用を無効にすることもできます。その後、これをリセットしてください。そうすれば、キャッシュされた資格情報を他のリポジトリー(もしあれば)で引き続き使用できるようになります。システム設定ファイルでこれが設定されている場合は、git config --system --unset credential.helper
を実行する必要があるかもしれません(例えば、Git for Windows 2)。
Windowsでは、 manager ヘルパー(git config --global credential.helper manager
)を使うほうがよいかもしれません。これにより、保存されている資格情報を削除または編集できるコントロールパネルインターフェイスを持つWindows資格情報ストアに、資格情報が保存されます。このストアでは、あなたの詳細はあなたのWindowsログインによって保護されており、複数のセッションにわたって持続することができます。 Git for Windows 2.xに含まれていた manager ヘルパーは、Git for Windows 1.8.1.1に追加されていた以前の wincred ヘルパーを置き換えたものです。 winstore と呼ばれる同様のヘルパーもオンラインで利用可能であり、GitExtensionsと共に使用され、よりGUI駆動のインターフェースを提供します。 manager ヘルパーは winstore と同じGUIインターフェースを提供します。
Windowsクレデンシャルストアパネルの詳細を記述している Windowsのマニュアル からの抜粋:
[スタート]ボタン[スタート]ボタンの画像、[コントロールパネル]、[ユーザーアカウントと家族の安全](またはネットワークドメインに接続している場合は[ユーザーアカウント])の順にクリックし、[ユーザーアカウント]をクリックします。左側のペインで、[資格情報の管理]をクリックします。
再入力:
$ git config credential.helper store
その後、資格情報をもう一度入力するように求められます。
_ warning _
このヘルパーを使用すると、パスワードは暗号化されずにディスクに保存されます。
私はOPと同じ問題に直面しました。システム上のどこかに保存されている古いGit認証情報を取得していたので、新しい認証情報でGitを使用したいので、次のコマンドを実行しました。
$ git config --system --list
示した
credential.helper=manager
git Push
を実行したときはいつでも、以前設定した古いユーザー名を使用していたので、変更をプッシュするには新しいGitHubアカウントを使用したいと思いました。私は後で私の古いGitHubアカウントの認証情報が コントロールパネル → ユーザーアカウント → 認証情報マネージャ → Windows認証情報の管理 の下に保存されていることを知りました。
これらの認証情報を削除したところ、git Push
を実行したときにGitHubの認証情報を要求されましたが、これは魅力のように機能しました。
私は私のために働く何かを見つけました。私がOPに私のコメントを書いたとき、私はシステム設定ファイルをチェックするのに失敗しました:
git config --system -l
を示します
credential.helper=!github --credentials
ライン。設定を解除します
git config --system --unset credential.helper
そして今、資格情報が忘れられています。
git config --list
credential.helper = manager
が表示されます(これはWindowsマシン上です)。
現在のローカルgitフォルダに対してこのキャッシュされたユーザー名/パスワードを無効にするには、単に次のように入力します。
git config credential.helper ""
こうすれば、gitは "manager"の中に保存されているものを無視して、毎回パスワードの入力を促します。
"wincred" *があるWindows 2003 Serverでは、他の答えはどれも私を助けませんでした。 cmdkey
を使わなければなりませんでした。
cmdkey /list
は、保存されているすべての資格情報を一覧表示します。cmdkey /delete:Target
は、 "Target"という名前の資格情報を削除します。(* "wincred"とはgit config --global credential.helper wincred
を意味します)
それぞれのgithubでログインする必要がありますusername
とpassword
Windowsでユーザー名とパスワードを消去する
コントロールパネル\ユーザーアカウント\資格情報マネージャ
windows資格情報を編集します
既存のユーザーを削除し、コマンドプロンプトに移動します。プッシュコマンドを入力すると、githubポップアップが表示され、username
/email
およびpassword
が入力されます。
これで、ユーザーを切り替えた後にコードをプッシュできます。
'git pull'を実行したときに同じエラーが発生しましたが、これが私がそれを修正した方法です。
git config --system --unset credential.helper
git config --system --add credential.helper manager
git pull
Windowsの現在ログインしているユーザーフォルダにある.gitconfigファイルからこの行を削除します。
[credential]
helper = !\"C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\"
これは私のために働きました、そして今私がリモートにプッシュするときそれは私のパスワードをもう一度尋ねます。
Windows用Git Credential Manager が使用されている場合(現在のバージョンでは通常行われています):
git credential-manager clear
これは 2016年半ばに追加された です。認証情報マネージャが使用されているかどうかを確認するには
git config --global credential.helper
→ manager
Gitの認証情報を削除するために、次のファイルcredential.helper=!github --credentials
から行C:\Program Files\Git\mingw64\etc\gitconfig
を削除できます。
C:\Users\<current-user>
に行く.git-credentials
ファイルをチェックしてください私の場合は、Windows資格情報マネージャ(Windows 7)に保存されている資格情報が見つかりませんでした。
実行することで私の資格情報をリセットすることができました
git config --global credential.helper wincred
それが私の信任状を一掃して実際にうまくいったかどうかを確認するのは正直なところ嘆かわしいマリアでした。
資格情報マネージャで更新する必要があります。
「コントロールパネル」>「ユーザーアカウント」>「資格情報マネージャ」>「Windows資格情報」に進みます。リストにGitの資格情報が表示されます(例:git:https://)。それをクリックし、パスワードを更新し、そしてあなたのGit bashからgit pull/Pushコマンドを実行すれば、それ以上エラーメッセージを投げることはありません。
Windows 10 Professional上でWindows用の最新バージョンのgitを使用しているときと同様の問題がありました。2つの異なるGitHubアカウントとBitbucketアカウントがあり、VS2017、git拡張、およびgit bashが少し混乱します。
最初に、このコマンドを使ってgitが自分の認証情報をどのように処理しているかを確認しました(昇格したコマンドでgit bashを実行するか、エラーが発生します)。
git config --list
[Credential Manager]というエントリが見つかったので、[スタート]ボタンをクリックし、[Credential Manager]と入力して[Credential Manager]を左クリックし、アプリを起動しました。それから私はWindows資格情報タブをクリックして、私はこのアカウントを削除したのでたまたまBitbucketである私の現在のgitアカウントのエントリを見つけました。
しかし、これはうまくいきませんでしたので、次のステップは資格情報を設定解除することでした。私はこれを私のラップトップ上のリポジトリディレクトリから実行しました。次のコマンドを入力しました。
git config --system --unset credential.helper
それから私はgit Pushをしました、そして私が入力したGitHubユーザー名(私が必要とした正しいもの)とそれに関連したパスワードと全てが正しくプッシュされたことを促されました。
私はこれがどれほどの問題になるのかわからないが、たいていの人はたぶん1つのレポジトリでうまくいくだろうが、私はいくつかにまたがって異なるプロバイダを使って作業しなければならない。
私たちの場合、ユーザーの.git-credentialsファイルのパスワードをクリアすることは私たちのために働きました。
c:\users\[username]\.git-credentials
GitHubデスクトップを使用し、リポジトリの設定に移動し、リポジトリのURLからuser:pass @を削除することで、この問題を解決しました。それから、コマンドラインからプッシュを試み、ログイン認証情報の入力を求められました。私がそれらをすべての中に入れた後に、正常に戻りました。 Visual Studioとコマンドラインの両方が機能しており、もちろんGitHubデスクトップも機能しています。
GitHubデスクトップ - >リポジトリ - >リポジトリ設定 - >リモートタブ
プライマリリモートリポジトリ(Origin)を次の場所から変更します。
https://pork@[email protected]/MyProject/MyProject.git
に:
https://github.com/MyProject/MyProject.git
「保存」をクリック
資格情報が消去されます。
Windowsでは、少なくとも git remote show [remote-name]
は動作します。
git remote show Origin
上記のようなものがあなたのために働いていないときにこれを試してください。
git config credential.helper 'cache --timeout=30'
これにより、3秒ごとにキャッシュが削除され、ユーザー名とパスワードが要求されます。タイムアウト値を増やしてコマンドを再実行できます。
@ patthoytsの高得点の回答( https://stackoverflow.com/a/15382950/4401322 )から構築します。
彼の答えは「ローカル」対「グローバル」対「システム」設定を使っていますが説明はしていません。彼らのための公式のgitドキュメンテーションは ここ そして読む価値があります。
例えば、私はLinuxを使っていて、 system configを使わないで、--system
フラグを使うことは決してありませんが、--local
と--global
configsを区別する必要があります。
私のユースケースは2つのGithub資格を持っているということです。一つは仕事用、もう一つは遊び用です。
これが私が問題を処理する方法です:
$ cd work
# do and commit work
$ git Push Origin develop
# Possibly prompted for credentials if I haven't configured my remotes to automate that.
# We're assuming that now I've stored my "work" credentials with git's credential helper.
$ cd ~/play
# do and commit play
$ git Push Origin develop
remote: Permission to whilei/specs.git denied to whilei.
fatal: unable to access 'https://github.com/workname/specs.git/': The requested URL returned error: 403
# So here's where it goes down:
$ git config --list | grep cred
credential.helper=store # One of these is for _local_
credential.helper=store # And one is for _global_
$ git config --global --unset credential.helper
$ git config --list | grep cred
credential.helper=store # My _local_ config still specifies 'store'
$ git config --unset credential.helper
$ git Push Origin develop
Username for 'https://github.com': whilei
Password for 'https://[email protected]':
Counting objects: 3, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 1.10 KiB | 1.10 MiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/whilei/specs.git
b2ca528..f64f065 master -> master
# Now let's turn credential-helping back on:
$ git config --global credential.helper "store"
$ git config credential.helper "store"
$ git config --list | grep cred
credential.helper=store # Put it back the way it was.
credential.helper=store
この問題を完全に回避する方法があることも注目に値します。たとえば、Github用のSSHキー(仕事用、遊び用)とそれに対応するカスタム名前付きリモートホストを組み合わせた~/.ssh/config
を使用して認証コンテキストを解決することもできます。
Windowsキャッシュ用Git Credentials Managerをクリアするには
rm $env:LOCALAPPDATA\GitCredentialManager\tenant.cache
または
rm %LOCALAPPDATA%\GitCredentialManager\tenant.cache
キーペアを使用して認証された場合は、秘密キーを削除または移動したり、キーエージェントを停止して試行したりできます。
macOSユーザーの場合:
このエラーは、同じコンピュータで複数のGitアカウントを使用しているときに表示されます。
以下の手順に従って、github.comの認証情報を削除してください。
Github.comを選択して右クリック
"github.com"を削除します
もう一度gitするためにPushまたはPullを試みると、資格情報が求められます。リポジトリアカウントの有効な認証情報を入力してください。完了