次のコマンドを実行しました。
git pull <partner_remote> <partner_branch>
git config user.email <my_email>
git config user.name <my_name>
git commit --amend --reset-author
git Push <my_remote> HEAD:refs/for/<my_branch>
しかし、「git Push」の後に次のエラーが発生しました。
remote: ERROR: In commit b6b74fff7850c4b61a5535519959b1ab58ca6fa9
remote: ERROR: committer email address aaa@aaa
remote: ERROR: does not match your user account.
remote: ERROR:
remote: ERROR: The following addresses are currently registered:
remote: ERROR: bbb@bbb
remote: ERROR:
remote: ERROR: To register an email address, please visit:
remote: ERROR: http://xxxxxxxx
私はそれを修正する方法がわかりません。
(aaa @ aaa)が正しく理解できれば、Gerritに登録されているbbb @ bbbメールとは違うんですよね?だから... aaa @ aaaが正しいメールかどうかを確認し、Gerritに登録します。
「[Gerrit Code Review] Email Verification」というメールが届きます。指示に従って、aaa @ aaaメールアドレスをユーザーアカウントに追加します。
Gerrit->設定-> HTTPクレデンシャルに進みます。ガイドの手順に従って、以下のオプションを完了します:パスワードを取得します(新しいタブで開きます)
これは、git credential-managerが以前のログイン資格情報を保存しているためです。
ここに修正があります、ただ実行してください:
git credential-manager clear <gerrit url>
例:git credential-manager clear https://mygerrit.com
もう一度プッシュまたはクローンすると、ユーザー名とパスワードの入力を求められます
さらに、他の人の変更をコミットしようとすると、同じエラーが発生する可能性があります。 Johnからのレビューでコミットがある場合、これは私のチームではかなり一般的な使用例ですが、Johnは休暇\病休\休暇を取り、いくつかのフィードバックが表示されました。したがって、コミットでできるだけ早くマージする必要がある場合は、いくつかの変更が必要です。 Gerritを使用すると、誰かのコミットをチェックアウトし、変更を加えて、新しいパッチセットとしてアップロードできます。元の作者(ジョン)は「作者」のままですが、あなたは「コミッター」になります。
ケースの簡単な説明でしたが、今度は問題に戻ります。私のチームでは、Gerrit構成がセットアップされているため、デフォルトでは「送信者」に Forge Author\Forge Committer 権限がないため、質問で述べたのと同じエラーが発生します。新しいパッチセットをアップロードします。
解決策は、gerritプロジェクト(メンテナ、開発者、または管理者)でより高い役割をリクエストすることです。