Dlaczego Git nie pozwala mi na zatwierdzanie nawet po konfiguracji?


84

To pytanie wydaje się być duplikatem, ale tak naprawdę nie jest. Tylko niewielka różnica, która się powtarza. git ciągle mi mówi: „proszę powiedz mi, kim jesteś”, nawet po skonfigurowaniu go. kiedy biegnę git commit, to otrzymuję ...

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

Ale kiedy biegnę git config --global -l, daje mi wszystkie moje dane ...

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

Zmieniłem swoje imię i nazwisko, adres e-mail i serwer proxy, ale po uruchomieniu polecenia wyglądają dobrze, nawet w pliku .gitconfig widzę, że wartości są ustawione. co może być brakującą rzeczą, ponieważ w ogóle nie mogę się zaangażować. Za każdym razem, gdy pyta mnie, kim jestem?

@sheu powiedział mi coś, co zmieniłem, ale wciąż ten sam problem. kiedy ustawiam --local, nadal git commitzadaje mi to samo pytanie. to jest wynik

$ 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

Być może ten post może być odpowiedzią na Twoje pytanie stackoverflow.com/questions/2936652/…
Sumit Munot

@SumitMunot, nie mogłem znaleźć czegoś przydatnego ... mam tylko gałąź główną i żadną inną
Obby

3
@SumitMunot, sugerując zmiany, powstrzymaj się od dodawania takich rzeczy, jak „Proszę o pomoc” i „Z góry dziękuję”. Takie zwroty są odradzane, ponieważ dodają niepotrzebny szum do pytania. Ponadto aktywnie zmieniasz tytuły pytań, ale w wielu przypadkach brakuje czasownika „jest”. Sugerując zmiany, upewnij się, że używasz odpowiedniej gramatyki.
psubsee2003

5
Czy nie powinno być user.emailw konfiguracji globalnej (zwróć uwagę na e w e -mailu)?
Lumen

Odpowiedzi:


166

To jest literówka. Przypadkowo ustawiłeś user.mailbez e . Napraw to, ustawiając user.emailw konfiguracji globalnej z

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

dzięki ... nawet nie mogłem tego zauważyć. problem naciśnięcia strzałki w górę zamiast pisania od nowa
Obby

No cholera! Popełniłem ten sam błąd.
azmodan

przepraszam, ale nie mogę zrozumieć, gdzie muszę ustawić lub edytować?
cSharma

1
5 lat później popełniłem ten sam błąd!
Jalal

Niesamowite, jak literówka może zmarnować tyle czasu! dzięki stary!
jaycee

10

Ustawiasz globalne opcje git, ale lokalny checkout prawdopodobnie ma ustawione nadpisania. Spróbuj ustawić je ponownie za pomocą git config --local <setting> <value>. Możesz spojrzeć na .git/configplik w swoim lokalnym pobraniu, aby zobaczyć, jakie ustawienia lokalne zdefiniował ten plik.


Możesz usunąć dane git w panelu sterowania: Panel sterowania → Konta użytkowników → Menedżer poświadczeń → Menedżer poświadczeń systemu Windows. Następnie wprowadź go ponownie, podając poprawną nazwę użytkownika i hasło. To jedyna opcja, która zadziałała dla mnie.
Sophie Cooperman,

3

Czy masz lokalną user.namelub user.emailzastępującą globalną?

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=

Jeśli tak, usuń je

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

Ustawienia lokalne dotyczą poszczególnych klonów, więc będziesz musiał usunąć ustawienia lokalne user.namei user.emaildla każdego repozytorium na swoim komputerze.


0

Miałem ten problem nawet po poprawnym ustawieniu konfiguracji. git config

Mój scenariusz polegał na wydaniu polecenia git przez administratora (w systemie Linux). Podczas dalszego debugowania przełożony nie czytał konfiguracji git z folderu domowego. Dlatego musiałem ustawić zmienną środowiskową HOME w konfiguracji nadzorcy, aby mogła poprawnie zlokalizować konfigurację git. Dziwne, że kierownik nie był w stanie zlokalizować konfiguracji git tylko na podstawie nazwy użytkownika skonfigurowanej w konfiguracji nadzorcy (/etc/supervisor/conf.d).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.