Perché Git non mi consente di eseguire il commit anche dopo la configurazione?


86

Questa domanda sembra un duplicato ma in realtà non lo è. Solo una leggera differenza che continua a ripetersi. git continua a dirmi: "per favore dimmi chi sei", anche dopo averlo configurato. quando corro git commit, questo è quello che ottengo ...

$ git commit

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"

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)')

Ma quando corro git config --global -l, mi dà tutti i miei dettagli ...

$ git config --global -l
user.name=myname
user.mail=me.myself@gmail.com
http.proxy=proxy.XX.XX.XX:XXXX

Ho cambiato nome, email e proxy ma sembrano a posto quando eseguo il comando, anche nel file .gitconfig posso vedere che i valori sono impostati. quale potrebbe essere la cosa mancante, perché non posso impegnarmi affatto. Ogni volta che continua a chiedermi chi sono?

@sheu mi ha detto qualcosa che ho cambiato, ma sempre lo stesso problema. quando ho impostato --local, git commitmi fa ancora la stessa domanda. questo è l'output

$ 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
user.mail=me.myself@gmail.com

Forse questo post potrebbe essere la risposta alla tua domanda stackoverflow.com/questions/2936652/…
Sumit Munot

@SumitMunot, non sono riuscito a trovare qualcosa di utile ... ho solo il ramo principale e nessun altro
Obby

3
@SumitMunot quando suggerisci modifiche, evita di aggiungere cose come "Per favore, aiuto" e "Grazie in anticipo". Frasi del genere sono scoraggiate poiché aggiungono rumore inutile alla domanda. Inoltre, stai cambiando attivamente i titoli in domande, ma in molti casi manca il verbo "È". Assicurati di utilizzare la grammatica corretta quando suggerisci modifiche.
psubsee2003

5
Non dovrebbe essere user.emailnella configurazione globale (notare la e nell'email)?
Lumen

Risposte:


168

È un errore di battitura. Hai accidentalmente impostato user.mailsenza e . Risolvilo impostando user.emailnella configurazione globale con

git config --global user.email "you@example.com"

grazie ... non riuscivo nemmeno a vederlo. il problema di premere la freccia su invece di scrivere di nuovo
Obby

Oh dannazione! Ho fatto lo stesso errore.
sdksdk

scusa ma non riesco a capire dove devo impostare oppure modificare?
cSharma

1
5 anni dopo e ho fatto lo stesso errore!
Jalal

Incredibile come un errore di battitura possa far perdere così tanto tempo! grazie compagno!
jaycee

10

Stai impostando le opzioni git globali, ma è possibile che il checkout locale abbia le sostituzioni impostate. Prova a impostarli di nuovo con git config --local <setting> <value>. Puoi guardare il .git/configfile nel tuo checkout locale per vedere quali impostazioni locali ha definito il checkout.


Puoi cancellare i tuoi dati git nel pannello di controllo: Pannello di controllo → Account utente → Credential Manager → Windows Credential Manager. Quindi inseriscilo nuovamente con il nome utente e la password corretti. Questa è l'unica opzione che ha funzionato per me.
Sophie Cooperman

3

Hai un locale user.nameo user.emailsta prevalendo su quello globale?

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=

In tal caso, rimuoverli

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

Le impostazioni locali sono per clone, quindi dovrai annullare l'impostazione locale user.namee user.emailper ciascuno dei repository sulla tua macchina.


0

Ho avuto questo problema anche dopo aver impostato correttamente la configurazione. git config

Il mio scenario era l'emissione del comando git tramite supervisore (in Linux). Dopo un ulteriore debug, il supervisore non leggeva la configurazione git dalla cartella home. Quindi, ho dovuto impostare la variabile d'ambiente HOME nella configurazione del supervisore in modo che possa localizzare correttamente git config. È strano che il supervisore non sia stato in grado di individuare git config solo dal nome utente configurato nella configurazione del supervisore (/etc/supervisor/conf.d).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.