Обновление (декабрь 2012)
git1.8.1rc1 теперь работает иначе:
«git config --get» используется для диагностики наличия нескольких определенийта же переменная в том же файле конфигурации, что и ошибка, но теперь она применяет правило "последних побед", используемое внутренней логикой конфигурации .
Строго говоря, это может быть регрессия API, но ожидается, что никто не заметит этого на практике.
Оригинальный ответ (ноябрь 2010 г.)
Страница руководства git config упоминает:
Имена переменных не чувствительны к регистру и допускаются только буквенно-цифровые символы и -.
Может быть несколько значений дляданная переменная;тогда мы говорим, что переменная имеет многозначное значение .
На самом деле такие настройки конфигурации (с несколькими возможными значениями) называются multivar
Как предлагает Джефромипосмотрите, в каком из 3 файлов конфигурации у вас есть более одной user.name
строки.
Вы можете запросить несколько значений, например, так:
git config --local --get-all user.name #local repo git config file)
git config --global --get-all user.name #user config file)
git config --system --get-all user.name #system git config file)
Один файл конфигурации, который отвечает более чем на один user.name
значение должно быть исправлено.
Из комментариев:
Изучая файлы "local", "global" и "settings" я вижу только один user.name
inglobal.
Но git config --list
и git config --get-all user.name
дают мне это дважды
Как я упоминаю в здесь с Git 2.8 (март 2016 г.) , вы можете использовать (чтобы увидеть все настройки:
git config -l --show-origin
Когда вы видите, где находится дубликат настройки (локальный, глобальный, системный), вы можете использовать git config [--local/--global/--system] --replace-all key value
, как в mb21 * ответ .