Gitと端末に問題があります。
ここに私の問題を示すギャラリーがあります: http://imgur.com/a/6RrEY
私の端末からコミットをプッシュすると、gitは別のユーザー名でプッシュします、それは組織(私の会社)のユーザーであり、コミットはまったくなく、誰にも属していないようです: (ギャラリーの最初の写真を確認してください)
しかし、Github for Macを使用している場合、これは発生しません。フィードでは、コミットが自分でプッシュされていることがわかります。
問題は私の個人的なリポジトリにも影響します、私の端末は、これらのリポジトリでコミットをプッシュする許可を持っていないと言います(明らかに間違っています)このユーザーでプッシュしようとするので: (ギャラリー2枚目の写真を確認)
何だと思う ?これはGithub for Macでも発生しません。
数日前にコンピューターをまったく新しいものに変更したため、GitHubのすべてのsshキーをリセットし、Github for Macで生成された新しいキーのみを残しました。どこかに、このHDDは真新しいです:(ギャラリー3番目の写真を確認してください)
私の.gitconfigファイルはすべて明確で、資格情報のみがあります:(ギャラリー4番目の写真を確認してください)
StackOverflow、助けてくれない、あなたは私の唯一の希望です。
(Gimpの貧弱なスキルとスターウォーズのリファレンスに対する謝罪)
EDIT:ssh-add -l
はgithub for macで作成された適切なsshキーのみを表示し、githubアカウントは1つしかありません
EDIT2:ssh -T [email protected]
は私を良いユーザーとして認識します。
EDIT3:いくつかのテストの後、私の端末はユーザー名でコミットするように見えますが、Github for macでコミットしてプッシュするようになりますこの状況は、私が持っている/作成するすべてのレポで(新しいものでも)発生します。
EDIT4:個人リポジトリでgit log --pretty="%h %an %ae"
は私の良いユーザー名を表示します
EDIT5:env
の資格情報を上書きする環境変数の兆候はありません。これらの変数を適切な資格情報で設定しようとしても、問題は解決しません。
EDIT6:リポジトリの/.git/config
のパスにユーザーを強制した場合、物事は正常に戻りますが、それは良いとは思いませんオプション:http://[email protected]/USER/REPO.git
EDIT7:コミットをプッシュしたgitユーザーを削除したため、別のエラーが発生しました:remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'
最終編集:gitをhomebrewでインストールし、git config --global Push.default simple
と入力しました。ユーザーを強制します。変だね。あなたの助けに感謝します、あなたは素晴らしい人です!
他のユーザーから与えられた素晴らしいオプションにもかかわらず、これを修正する唯一の方法はgitを完全に再インストールし、git config --global Push.default simple
を入力して適切な資格情報を書き換えることでした。
私は職場でこの問題を抱えていました。 Macに付属している、またはxcodeをインストールするときに付属する組み込みgitは、キーチェーンにgit資格情報をキャッシュします。私にとっての修正は:
キーチェーンアクセスを開始します(cmd +スペースを使用してスポットライトを開始し、キーチェーンを入力してEnterキーを押します)
左上のキーチェーンの下で、「ログイン」を選択します。左のカテゴリの下で、「パスワード」を選択します
「github」という名前を見つけて削除します。
私の端末は私のユーザー名でコミットしているが、他のユーザーでプッシュしているようです
作成者とコミッターの名前と電子メール(GitHubにとって重要)は、以下から派生しています。
git config user.name
git config user.email
ただし、 git config
および git commit-tree
で述べたように、これらの値は環境変数によってオーバーライドできます。
GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL
GIT_COMMITTER_NAME
GIT_COMMITTER_EMAIL
したがって、これらの変数を再確認してください。
リポジトリの
.git/config
にユーザーを強制する場合、物事は正常に戻りますが、それは良い選択肢ではないと思います。
しかし、それは良い解決策でなければなりません。
https URLを使用する場合、適切なユーザーで認証が行われるように、ユーザーを常に指定します。
http://[email protected]/USER/REPO.git
一時的な解決策は、最初にkillall ssh-agent
を実行してから、使用する必要があるアカウント用に生成されたsshキーを追加しますssh-add ~/.ssh/id_4shameer
タイプERROR: Permission to user/repo-git.git denied to username.
のエラーが発生する場合、複数のgithubアカウントで作業するのに役立ちます
MACを使用している場合は、キーチェーンアクセスに移動し、gitアクセスを望まないユーザーのエントリを削除します。
私はWindows 10を使用していますが、今日も同じ問題に直面しました。私の場合、別のユーザーの資格情報はWindows資格情報マネージャーによって保存されました。したがって、以下のコマンドでgit資格情報を削除/設定解除します。gitconfig --global --unset credential.helper
助けにならなかった。以下の方法に従って、Windowsのエントリを手動で削除する必要がありました。
[スタート]-> [コントロールパネル] ---> [ユーザーアカウント] --->資格情報の管理---> Windows資格情報
次に、git: https://github.com のようなエントリを検索して削除します。その後は正常に動作します。
私にとっての解決策は、githubの〜/ .ssh/configファイルにエントリを追加することでした。私はこれをしなければなりませんでした:
追加したエントリは次のとおりです。
Host github.com
Hostname github.com
Port 22
User waterproofpatch
IdentityFile ~/.ssh/id_rsa_waterproofpatch
Id_rsa_waterproofpatchとして、アカウントに固有のnewキーを作成しました。私のssh設定のこのエントリは、github.comへの接続のために、このキーを提示したいことを指定しています。
別の解決策は、おそらく他のアカウントにログインし、重複したsshキーを削除することでした。
それは私のために働いたものです:
リポジトリを削除して再度追加すると、私にとってうまくいったのは:
git remote rm Origin
git remote add Origin [email protected]:fguillen/MyApp.git
@ user5428 のように、gitをアンインストールした後でもwindows10で同じ問題が発生します。これは、windowsのGithub資格情報を削除する必要があるためですCredential Manager
およびプッシュしようとすると、ウィンドウはあなたの資格情報を要求し、それを再設定します
私のために働いたのは、ssh URLの代わりにGithubリポジトリのhttps URLを使用することでした。 Githubプロジェクトページに移動し、https URLをクリップボードにコピーして、次の2番目のコマンドに貼り付けました。
git remote rm Origin
git remote add Origin https://[...]
キーチェーンをクリアしても解決しませんでした... ssh-add -D
を使用して、ssh-add <keyfile>
でキーを再追加する必要がありました
MacOS High Sierraでid_rsaおよびid_rsa.pubファイルを削除する(または* .bakに名前を変更する)この問題を解決しました。 here からのアイデア。
〜/ .ssh/configにカスタムホストリダイレクトがあり、適用する必要がありますが、2つのファイルの名前を変更する前に間違ったユーザーを使用しています...
私は同様の問題を抱えていたが、問題は公開鍵ファイルの最後の行に私のメールアドレスが含まれているという事実であることが判明した。それは私の設定のユーザー設定を上書きするように見えました。 .pubファイルから電子メールを削除すると(そしてレポジトリに再アップロードされたら)、Gitは正しいユーザーを使用して接続しました。