Gitのユーザー名と電子メールアドレスがgitconfigファイルに自動的に挿入されるのを防ぐ方法は?

Gitのユーザー名と電子メールアドレスがgitconfigファイルに自動的に挿入されるのを防ぐ方法は?

私はLinuxの世界とgitに初めて触れました。最近、「dotfiles」というGitリポジトリを作成し、ドットファイルを管理するためのバージョン管理を設定しました。ただし、変更をコミットするたびに、Gitユーザー名とパスワードの入力を求められます。その後、自分のユーザー名と電子メールアドレスが.gitconfigそのセクションuserの下のファイルに自動的に挿入されます。今はGit 'dotfiles'リポジトリがプライベートなので大丈夫ですが、後でこのリポジトリをパブリックに設定することもできます。その場合、私のユーザー名とEメールアドレスを表示したくありません.gitconfig。これが起こらないようにするにはどうすればよいですか?

私は気づいたマティアス・ベインズの.gitconfigプロフィールには部品がなく、user次のcommit部品で構成されています。

[commit]

    # https://help.github.com/articles/signing-commits-using-gpg/
    gpgsign = true

私もアニッシュ・アタエの.gitconfigプロフィールcommitセクションはありませんが、userセクションには以下が含まれます。

[user]
    useConfigOnly = true

ベストアンサー1

Gitでは、コミットには名前とEメールアドレスが必要です。この値はすべてのコミットに挿入され、nullではなく、いくつかの基本的な検証を満たす必要があります。慣例では、この名前は個人名ですが、Git自体はそれを要求しません。ただし、あなたが貢献するプロジェクトでは必要になる場合があります。

~/.gitconfigただし、構成ファイルでもこれを提供する必要はありません。 Git はまず環境変数GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, から存在するかどうかをGIT_COMMITTER_NAME読み込みます。しかし、これは一般的に使用するときに他の技術を使用しようとしたときに値を上書きするGIT_COMMITTER_EMAILので、良い考えではありません。git commit --amend

git-commit(1)その他のオプション説明:

これらの環境変数の一部が設定されていない場合は設定項目から情報を取得し、存在しないuser.name場合user.emailは環境変数からEMAIL、設定されていない場合は送信に使用されるシステムユーザー名とホストから情報を取得します。ファイル名(/etc/mailnameファイルが存在しない場合は、完全修飾ホスト名からファイルを取得し、そのホスト名に置き換えます)

author.nameそして、対応する電子メールオプションが設定されている場合は、committer.nameuser.nameとuser.emailをオーバーライドし、環境変数でオーバーライドします。

一般的な使い方は設定user.nameuser.email変数だけです。より複雑なユースケースには他のオプションがあります。

私は通常私の名前を残し、user.nameシェルEMAIL構成で適切に設定します。一部のプログラム(特にHomebrew)はEMAIL環境に応じて破損してフィルタリングされるため、すべての場合で動作するわけではありません。システムの GECOS フィールドとメール設定が正確であることに頼るのは良い考えではありません。そうでない場合が多いからです。

~/.config/git/config最後に、通常はデフォルトファイルに保存したくない値を保存したり、~/.gitconfigドットファイルストアにチェックインしたりするために他の設定ファイルを使用できます。commit.gpgsign私が使用しているすべてのシステムに秘密鍵があり、コミットに署名できるわけではないので、署名できるかどうかと使用する鍵はシステムによって異なります。

おすすめ記事