web-dev-qa-db-ja.com

Gitが設定後もコミットを許可しないのはなぜですか?

この質問は重複しているように見えますが、実際にはそうではありません。繰り返し続けるわずかな違い。 gitは、設定した後でも「あなたが誰であるかを教えてください」と言い続けます。 git commitを実行すると、これが得られます。..

$ git commit

*** Please tell me who you are.

Run

git config --global user.email "[email protected]"

git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'Obby@ObbyWorkstation.(none)')

しかし、git config --global -lを実行すると、すべての詳細が表示されます...

$ git config --global -l
user.name=myname
[email protected]
http.proxy=proxy.XX.XX.XX:XXXX

名前、メール、プロキシを変更しましたが、コマンドを実行すると、.gitconfigファイルでも値が設定されていることがわかります。私はまったくコミットできないため、不足している可能性があります。私が誰であるかを尋ね続けるたびに?

@sheuは、私が変更したことを教えてくれましたが、それでも同じ問題です。 --localを設定しても、git commitは同じ質問をします。これは出力です

$ git config --local -l
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
user.name=myname
[email protected]
78
Obby

それはタイプミスです。誤ってuser.maileなしで設定しました。グローバル設定でuser.emailを設定して修正します

git config --global user.email "[email protected]"
151
Lumen

グローバルgitオプションを設定していますが、ローカルチェックアウトにオーバーライドが設定されている可能性があります。 git config --local <setting> <value>でもう一度設定してみてください。ローカルチェックアウトの.git/configファイルを見て、チェックアウトが定義したローカル設定を確認できます。

10
sheu

グローバルuser.nameまたはuser.emailがあり、グローバルなものをオーバーライドしていますか?

git config --list --global | grep user
  user.name=YOUR NAME
  user.email=YOUR@EMAIL
git config --list --local | grep user
  user.name=YOUR NAME
  user.email=

もしそうなら、それらを削除します

git config --unset --local user.name
git config --unset --local user.email

ローカル設定はクローンごとであるため、マシンの各リポジトリのローカルuser.nameおよびuser.emailの設定を解除する必要があります。

3
Nate