У меня проблемы с моей глобальной конфигурацией git. И имя пользователя, и адрес электронной почты автоматически устанавливаются пустыми. Я не могу понять, есть ли закономерность в этом поведении, но чаще всего git говорит мне установить имя пользователя и адрес электронной почты, когда я пытаюсь сделать коммит.
Обновление с помощью git config --global
или непосредственное редактирование моего файла .gitconfig
работают, но через некоторое время они снова исчезают.
Содержимое файла до сброса:
[user]
name = <name>
email = <email>
[core]
editor = atom --wait
excludesfile = /Users/christian/.gitignore_global
[pull]
rebase = false
Содержимое файла после сброса:
[user]
name =
email =
[core]
editor = atom --wait
excludesfile = /Users/christian/.gitignore_global
[pull]
rebase = false
Вы не сходите с ума, у меня точно такая же проблема на моем Mac (11.0.1), где значения name =
и email =
исчезают из раздела [user]
моего .gitconfig
. Любопытно, что signingkey = xxxxx
остался нетронутым, как и остальная часть файла.
Вы используете Атом? У меня та же проблема, и я подозреваю, что Atom может быть виноват, но я все еще расследую
@IsaacBetesh Я действительно использую атом, но не для взаимодействия с git. Я все это делаю в Терминале.
@IsaacBetesh Я также использую Atom и сегодня впервые столкнулся с этой проблемой. Есть идеи? Что заставило вас заподозрить Atom?
Мои подозрения были правильными. Это вызвано переключением между двумя вкладками в Atom, если они содержат файлы из разных репозиториев. Закрытие вкладки, если оно приводит к тому, что вкладка из другого репо становится активной, также может вызвать это. Об этом уже сообщили атому: github.com/atom/github/issues/2558
В дополнение к проверке того, что может удалить вашу ~/.gitconfig
глобальную конфигурацию Git, также проверьте, установлено ли git config user.useConfigOnly
значение true.
Начиная с Git 2.8 это также заставит вас устанавливать свое имя пользователя/адрес электронной почты для каждого репозитория.
Вы также увидите эффект этой конфигурации в сообщении об ошибке:
no name was given and auto-detection is disabled
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Если нет, то он возвращается, чтобы проверить, если у вас есть проблема, ваш глобальный .gitconfig
удален или как-то изменен/сброшен.
user.useConfigOnly не установлен в моей конфигурации. Также сбрасывается только часть [user]
моего ~/.gitconfig
. Есть раздел [core]
, который всегда остается нетронутым.
@ChristianOlsen Этот ~/.gitconfig удаляется, когда вам нужно обновить свое имя пользователя/адрес электронной почты?
@ChristianOlsen Был ли файл изменен тогда, когда ваше имя пользователя / адрес электронной почты пропало?
Да! Это только что случилось снова. Проверяя ls -lc ~/.gitconfig
, я вижу, что он был изменен. Любые советы о том, как я могу отследить ответственный процесс?
@ChristianOlsen Каково его содержание при изменении?
обновил мой исходный пост с содержимым файла.
@ChristianOlsen поэтому значения сбрасываются на <пусто>. Установлена или отключена какая-либо пользовательская переменная GIT_xxx
в любой момент (как в git-scm.com/book/en/v2/…)
Я не устанавливаю ни одну из этих переменных в любой момент. Обычно я просто использую стандартные команды git, например. git status
, git add
, git commit
, git restore
и т. д.
Я временно решил проблему, удалив разрешение на запись из ~/.gitconfig
Поскольку
git config --global
работает путем записи в ваш глобальный.gitconfig
файл, любое другое действие, которое уничтожит этот файл (или вернет его старое содержимое), отменит настройку. Ищите вещи, которые изменяют файлы. Например, наличие вашего домашнего каталога в каком-либо сервисе обмена файлами / веб-синхронизации, как и команды запуска входа в систему, которые стирают и сбрасывают всю конфигурацию.