Git をバージョン管理に使用するプロセスでは、送信者を識別するためにユーザー名と電子メール アドレスを設定する必要があることがよくあります。ただし、個人の電子メール アドレスを変更したり、プライバシーを保護したいなどの理由で、この情報を変更する必要がある場合があります。ただし、変更を加えるために Git config --global user.name および Git config --global user.email コマンドを実行すると、Git が応答せず、ユーザー名と電子メールを変更できないことがわかりました。どうしてこれなの?この問題を解決するにはどうすればよいでしょうか?この記事ではそれについて詳しく説明します。
原因分析
まず、Git はコードの保存と管理に使用されるバージョン管理システムであり、送信者の情報を自動的に更新しないことを明確にする必要があります。ユーザーが Git コミットを行う場合、各送信に対応する送信者情報を手動で入力する必要があります。
したがって、ユーザー名と電子メール アドレスを更新する場合は、後続の送信操作ごとに新しい情報を手動で入力する必要があります。そうしないと、変更前のユーザー名と電子メール アドレスがデフォルトで使用されます。したがって、デフォルトでは、Git は以前のコミット履歴を自動的に更新しません。これが、ユーザー名と電子メール アドレスの変更が有効にならない理由の 1 つです。
さらに、Git 構成ファイルでユーザー名と電子メール アドレスを正しく指定しなかったか、--global オプションを追加しなかったため、ユーザー名と電子メールが変更された可能性もあります。アドレスは現在のプロジェクト内にのみ存在し、グローバルではなく有効になります。
解決策
1. Git 構成ファイルで新しいユーザー名と電子メール情報を更新します
Git 構成ファイル (~/.gitconfig) で次のコマンドを使用できます。 ) 新しいユーザー名と電子メール情報を更新します:
git config --global user.name "新的用户名" git config --global user.email "新的邮箱地址"
入力する新しいユーザー名と電子メール アドレスが、更新するユーザー情報と正確に一致していることを確認してください。変更が成功したら、Git を送信するときに新しいユーザー情報を入力するだけです。
2. Git 送信履歴のユーザー名と電子メール情報を更新する
Git 送信履歴のユーザー名と電子メール情報を更新する場合は、次のコマンドを使用する必要があります。 :
git filter-branch -f --env-filter "GIT_AUTHOR_NAME=新用户名; GIT_AUTHOR_EMAIL=新邮箱地址; GIT_COMMITTER_NAME=新用户名; GIT_COMMITTER_EMAIL=新邮箱地址;" HEAD
このコマンドは、Git の投稿履歴の投稿者情報を書き換えることにより、過去の投稿者情報を更新することができます。
このコマンドは変更前のコミット レコードをすべて削除するため、慎重に操作してください。さらに、このコマンドを実行する前に、データのセキュリティを確保するために Git リポジトリをバックアップすることもできます。
3. --global オプションを追加します
Git コマンドの実行時に --global オプションを追加しない場合、変更されたユーザー名と電子メール情報は現在のバージョンでのみ有効になります。プロジェクトに存在し、現在のプロジェクトでは使用されません。グローバルに有効です。したがって、コマンドを実行するときに --global オプションを追加する必要があります。
git config --global user.name "新用户名" git config --global user.email "新邮箱地址"
--global オプションを追加すると、変更したユーザー情報がすべての Git プロジェクトで確実に有効になります。
概要
上記のソリューションを通じて、Git のユーザー名と電子メール アドレスを簡単に変更できます。変更する場合は、入力した新しいユーザー情報が更新する情報とまったく同じであることを確認してください。もちろん、filter-branch コマンドを使用して Git 送信履歴のユーザー名と電子メール情報を更新する場合は注意してください。操作中に、データのセキュリティを確保するために Git リポジトリをバックアップする必要があります。
以上がgit はユーザー名と電子メールの変更に失敗しましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。