Почему Git не позволяет мне делать коммит даже после настройки?

86

Этот вопрос кажется повторяющимся, но на самом деле это не так. Просто небольшая разница, которая продолжает повторяться. git продолжает говорить мне: «пожалуйста, скажите, кто вы», даже после его настройки. когда я бегу git commit, вот что я получаю ...

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

Но когда я бегу git config --global -l, он дает мне все мои данные ...

$ git config --global -l
user.name=myname
user.mail=me.myself@gmail.com
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
user.mail=me.myself@gmail.com
Обби
источник
Возможно, этот пост может быть ответом на ваш вопрос stackoverflow.com/questions/2936652/…
Sumit Munot 02
@SumitMunot, я не смог найти что-то полезное ... у меня есть только главная ветка, и никакая другая
Obby
3
@SumitMunot, предлагая правки, пожалуйста, воздержитесь от добавления таких вещей, как «Пожалуйста, помогите» и «Заранее спасибо». Подобные фразы не приветствуются, поскольку они добавляют лишний шум к вопросу. Кроме того, вы активно меняете заголовки на вопросы, но во многих случаях пропускаете глагол «Is». При внесении правок убедитесь, что вы используете правильную грамматику.
psubsee2003 02
5
Разве это не должно быть user.emailв глобальной конфигурации (обратите внимание на e в электронном письме)?
Lumen

Ответы:

168

Это опечатка. Вы случайно установили user.mailбез e . Исправьте это, установив user.emailв глобальной конфигурации с помощью

git config --global user.email "you@example.com"
Люмен
источник
спасибо ... я даже не мог этого заметить. проблема нажатия стрелки вверх вместо того, чтобы писать заново
Obby
О, черт! Совершил ту же ошибку.
sdksdk 03
извините, но я не могу понять, где мне нужно установить или отредактировать?
cSharma,
1
5 лет спустя я совершил ту же ошибку!
Жалал
Невероятно, как опечатка может потерять столько времени! Спасибо друг!
jaycee 05
10

Вы устанавливаете глобальные параметры git, но для локальной проверки, возможно, установлены переопределения. Попробуйте снова установить их с помощью git config --local <setting> <value>. Вы можете просмотреть .git/configфайл в локальной кассе, чтобы узнать, какие локальные настройки определены в кассе.

Шеу
источник
Вы можете удалить свои данные git в панели управления: Панель управления → Учетные записи пользователей → Диспетчер учетных данных → Диспетчер учетных данных Windows. Затем введите его еще раз с правильным именем пользователя и паролем. Это единственный вариант, который у меня сработал.
Софи Куперман
3

У вас есть локальный 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для каждого репозитория на вашем компьютере.

Нейт
источник
0

У меня была эта проблема даже после правильной настройки конфигурации. git config

Мой сценарий выдавал команду git через супервизор (в Linux). При дальнейшей отладке супервизор не читал конфигурацию git из домашней папки. Следовательно, мне пришлось установить переменную HOME среды в конфигурации супервизора, чтобы она могла правильно найти конфигурацию git. Странно, что супервизор не смог найти конфигурацию git только по имени пользователя, настроенному в конфигурации супервизора (/etc/supervisor/conf.d).

любопытный ум
источник